JAVA程序 十个数任意选六个 输出结果

JAVA程序 十个数任意选六个 输出结果
0——9十个数选六个(不排列 就是C10^6=210种)输入所有的排列结果 最好能求每种排列的和值
这是我弄得
public class findComb{
static int[] a=new int[100];
public static void main(String str[]){
int[] n={0,1,2,3,4,5,6,7,8,9};
int length=n.length;
int r=7;
a[0]=r;
comb(n,length-1,r);
}
public static void comb(int[] n,int length,int r){
int i=0;
int j=0;
for(i=length;i>=r-1;i--){
a[r]=n[i];
if(r>1)
comb(n,i-1,r-1);
else{
for(j=a[0];j>0;j--)
System.out.print(a[j]+"、");
System.out.println();
}
}
}
}
但是结果不对 只有100多个结果 正常应该是210种结果 最好能求和
melissa-zhu 1年前 已收到1个回答 举报

xlpc1314 幼苗

共回答了21个问题采纳率:71.4% 举报

大致给你改了下,看是不是你要的结果.
public class findComb{
static int count=0;
static int[] a=new int[100];
public static void main(String str[]){

int[] n={0,1,2,3,4,5,6,7,8,9};
int length=n.length;
int r=6;
a[0]=r;
comb(n,length-1,r);
}
public static void comb(int[] n,int length,int r){
int i=0;
int j=0;
for(i=length;i>=r-1;i--){
a[r]=n[i];
if(r>1)
comb(n,i-1,r-1);
else{
int sum=0;
for(j=a[0];j>0;j--){
System.out.print(a[j]+"、");
sum+=a[j];
}
count+=1;
System.out.println("sum is:"+sum +" count is:"+count);
}
}
}
}

1年前

7
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.032 s. - webmaster@yulucn.com