题目:从键盘输入两个整数n和m,从n项中选出m项,输出所有的组合数。
public class ZuHe {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请依次n,m(注意n>m):");
int n = in.nextInt();
int m = in.nextInt();
int a[]=new int[n];
for(int i=0;i<n;i++){
a[i]=i+1; //a[0,1,2,4]={1,2,3,4}
}
int b[]=new int[m];
C(n,m,a,b);
in.close();
}
//自由组合,利用递推
public static void C(int n,int m,int a[],int b[]){
for(int i=m;i<=n;i++){
b[m-1]=i-1;
if(m>1){
C(i-1,m-1,a,b);
}else{
for(int j=0;j<b.length;j++){
System.out.printf("%d",a[b[j]]);
}
System.out.println();
}
}
}
}