站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题求一个比较菜的问题的解决方法,请好心人进来看看。在线等。

求一个比较菜的问题的解决方法,请好心人进来看看。在线等。

摘要: 求一个比较菜的问题的解决方法,请好心人进来看看。在线等。


用java:
整数1-33中间,任意取6个数,它们加起来的和是100.
希望能得到有多少种组合,以及具体组合结果。



public class Test {
int[] array;
int count=0;
void showArray(){
String s = null;
for(int i=0;i-#60;array.length;i++)
s=s+array[i]+-#34;,-#34;;
System.out.println(s);
}
void checksum(int lefttime,int sum,int min,int max){
if(lefttime==0){
if(sum-#62;=min-#38;-#38;sum-#60;=max){
array[lefttime]=sum;
System.out.println(array[0]+-#34;,-#34;+array[1]+-#34;,-#34;+array[2]+-#34;,-#34;+array[3]+-#34;,-#34;+array[4]+-#34;,-#34;+array[5]);
count++;
}
return;
}
for(int i=min;i-#60;=max;i++){
array[lefttime]=i;
checksum(lefttime-1,sum-i,i,max);
}
}

public static void main(String[] args) {
// TODO Auto-generated method stub
Test t=new Test();
t.array=new int[6];
t.checksum(5, 100, 1, 33);
System.out.println(-#34;allcount:-#34;+t.count);
}

}

运行结果
...
17,17,17,17,17,15
20,16,16,16,16,16
19,17,16,16,16,16
18,18,16,16,16,16
18,17,17,16,16,16
17,17,17,17,16,16
allcount:42828


楼上的,谢谢你。
不过这里要求这6个数字不能重复。


int num=0;
for (int n1 = 1; n1 -#60;= 14; n1++) {
for (int n2 = n1+1; n2 -#60;= 33; n2++) {
for (int n3 = n2+1; n3 -#60;= 33; n3++) {
for (int n4 = n3+1; n4 -#60;= 33; n4++) {
for (int n5 = n4+1; n5 -#60;= 33; n5++) {
for (int n6 = n5+1; n6 -#60;= 33; n6++) {
if(n1+n2+n3+n4+n5+n6==100){
System.out.println(n1+-#34;+-#34;+n2+-#34;+-#34;+n3+-#34;+-#34;+n4+-#34;+-#34;+n5+-#34;+-#34;+n6+-#34;=100-#34;);
num=num+1;
break;
}
}
}
}
}
}
}
System.out.println(-#34;总共-#34;+num+-#34;组数字-#34;);


这种做法效率呢?


多谢各位。给分了。

lip009(深蓝忧郁) 的

if(n1+n2+n3+n4+n5+n6==100)

是否应再加上(n1!=n2-#38;n2!=n3-#38;n3!=n4-#38;n4!=n5-#38;n5!=n6)的判断?

if(n1+n2+n3+n4+n5+n6==100 -#38; n1!=n2-#38;n2!=n3-#38;n3!=n4-#38;n4!=n5-#38;n5!=n6)

这样的结果才能做到每一位互不重复。
不能重复也不早说
to: cpcyfun() ( ) 信誉:100 Blog

请看清楚我的每个循环的开始数字,是不会有重复值的!


↑返回目录
前一篇: 问一个非常菜的问题socket监听端口怎么判断客户端非法断开
后一篇: 一个签过名的JAR文件,解包基中一个文件,反编译,重新更新包,执行时报:SHA1 digest error