开始需求:

产生一堆数字. 然后我输入一值,这个值等于这些数中的一个,或是任意多个数的和.但只能是其中一种情况.

比如我输入8.这些数里面,可以直接有8. 也可以是1+2+5 的和,也可以是 1+7 等.....但是只能是其中一种情况.

在网上看到了下面这篇文章:

后来朋友谈到2的N次方,然后就想到了一个求一个整数的组合数的算法:

package suanfa;

import java.util.Scanner;

public class Demo {

public static void main(String[] args) {

/**

* 2的N次方计算

*

*

* 2的N次方序列:1、2、4、8、16...

*/

int sum = (int) Math.pow(2, 2);

System.out.println("2的2次方:" + sum);

System.out.println("10转换成二进制:" + Integer.toBinaryString(10));

System.out.println("================");

Scanner sc = new Scanner(System.in);

System.out.println("请输入一个整数:");

int m = sc.nextInt();

// 十进制转二进制

String str = Integer.toBinaryString(m);

System.out.println("str==对应二进制字符串=" + str + ",str.length()=="

+ str.length());

/**

* 判断二进制位上是否为1,如果为1则得到相应位置十进制数(即所得组合数之一)

*/

for (int i = 0; i < str.length(); i++) {

int aa;

String strindex = str.substring(i, i + 1);

// System.out.println("str.substring(i, i+1)===="+str.substring(i,

// i+1));

if (strindex.equals("1")) {

aa = str.length() - i - 1;

System.out.println("i===" + i + ",这是2的" + aa + "次方"

+ ",相应组合数等于:" + (int) Math.pow(2, aa));

}

}

}

}

====================================

测试结果:

求组合数的算法 java,求一个整数的组合数算法(java)相关推荐

  1. Java 求一个整数的个位,十位,百位,千位。

    import java.util.Scanner; public class Text {    public static void main(String[] args){     Scanner ...

  2. 算法 - 快速求一个整数的7倍

    分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 乘法运算相对比较慢,所以快速的方法就是将这个乘法转换 ...

  3. 算法 快速求一个整数的7倍

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 乘法运算 ...

  4. Java 求一个整数数组的奇数和偶数的个数

    public class Array{public static void main(String[] args){int n=0,m=0;int a[]={12,45,89,44,36,52,78, ...

  5. C++求一个整数的各位数字总和(附完整源码)

    C++求一个整数的各位数字总和算法 C++求一个整数的各位数字总和算法完整源码(定义,实现,main函数测试) C++求一个整数的各位数字总和算法完整源码(定义,实现,main函数测试) int su ...

  6. Java黑皮书课后题第6章:*6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和。使用下面的方法头:public static int sumDigits(long n)

    6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和.使用下面的方法头:public static int sumDigits(long n) 题目 题目概述 槽点 代码 运行示例 ...

  7. Java黑皮书课后题第2章:2.6(求一个整数各位数的和)读取一个0和1000之间的整数,并将给整数的各位数字相加

    2.6(求一个整数各位数的和)读取一个0和1000之间的整数,并将给整数的各位数字相加 题目 题目描述 运行示例 题目槽点与破题 题目槽点 破题 如何提取数字 代码块 方法评价 题目 题目描述 2.6 ...

  8. 求一个整数的阶乘结果中后缀0的个数

    问题描述: 给一个整数,请输出该数字阶乘的后缀0的个数,例如: 数字7,它的阶乘为5040,后面有一个0,则输出1:还有数字10,它的阶乘为3628800,后面有两个0,则输出2. /* 功能:求一个 ...

  9. C/C++求一个整数的二进制中1的个数

    求一个整数的二进制中1的个数 收藏 题目:输入一个整数,求该整数的二进制表达中有多少个1.例如输入10,由于其二进制表示为1010,有两个1,因此输出2. 分析:这是一道很基本的考查位运算的面试题.包 ...

最新文章

  1. 在php中存redis数据,redis缓存都存哪些数据
  2. Python中的线程threading.Thread()使用详解
  3. pycharm 波浪线报绿 Typo: In word 'xxxx'(绿色波浪线)
  4. [数据加密]GIS空间数据水印信息隐藏与加密技术方法[转]
  5. 递归求和的复习-计算m~n整数和
  6. 在 idea 中为类和方法自动生成注释
  7. SharePoint 2013 基于表单 Membership 的身份验证
  8. python实现录音小程序 界面_微信小程序录音界面以及功能实现
  9. 计算机科学素养大赛,第六届全国大学生计算机应用能力与信息素养大赛圆满结束...
  10. sdk manager更新失败,显示Download interrupted: read timed out,应该如何解决?
  11. 安卓和win环境下扫描局域网下设备IP的工具
  12. MarkDown 下载-安装
  13. opencv基于模板匹配的银行卡卡号识别项目实战
  14. Proxmox VE桌面虚拟化
  15. 如何成为一名程序员?
  16. 如何设计一个C++的类?
  17. 云服务器有什么用途?新手如何使用云服务器
  18. Java8新特性之Joining
  19. 【C++】什么情况下会产生临时变量
  20. SEO批量文章繁简转换,同义词替换

热门文章

  1. zookeeper + kafka集群搭建详解
  2. php endall(),从G_BEGIN_DECLS和 G_END_DECLS说起
  3. linux lcd驱动调试 echo dev/fb0,LCD驱动程序 - osc_msmij2gf的个人空间 - OSCHINA - 中文开源技术交流社区...
  4. python链表怎么定义_python:链表定义以及实现
  5. Java 中JProgressBar,Java JProgressBar
  6. CNCF TOC 委员张磊:不断演进的云原生给我们带来了什么?
  7. 2020年阿里云边缘计算和CDN的关键词
  8. 揭秘 | 连续3年支撑双11,阿里云神龙如何扛住全球流量洪峰?
  9. 八位技术专家分享他们最喜欢的物联网技术
  10. R语言数据挖掘实践——系谱聚类