java 从m个数中均匀找出n个数_java程序问题,从n个数中选取r个数的组合

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

public class Combination {

static String[][] tree=new String[10][10];

static int branch=0;

public static void main(String[] args){

System.out.println("找出从自然数 1, 2, …, n 中任取r个数的所有组合");

System.out.println("输入n,r");

Scanner c=new Scanner(System.in);

int n=c.nextInt();

Scanner c1=new Scanner(System.in);

int r=c1.nextInt();

find(n,r,0,0);

System.out.println(tree.length);

for(int i=0;i

if(tree[i].length!=0){

for(int m=0;m

if(tree[i][m].length()==r){

System.out.println(tree[i][m]);

}

}

}

}

}

public static void find(int n,int r,int treeNumber,int fromTree){

if(r==1){

for(int i=1;i<=n;i++){

tree[fromTree][i-1]=String.valueOf(i);

}

}else if(n==r){

String temp="";

for(int i=r;i>0;i--){

temp=String.valueOf(i)+temp;

}

tree[fromTree][0]=temp;

}else if(n>r){

branch++;

find(n-1,r-1,branch,treeNumber);

for(int i=0;i

tree[treeNumber][i]=String.valueOf(n)+tree[treeNumber][i];

}

int l=0;

for(int i=0;i

while(tree[fromTree][i]==null){

tree[fromTree][i]=tree[treeNumber][l];

l++;

}

}

branch++;

find(n-1,r,branch,treeNumber);

int m=0;

for(int i=0;i

while(tree[fromTree][i]==null){

tree[fromTree][i]=tree[treeNumber][m];

m++;

}

}

}else{

System.out.println("输入数据有误");

}

}

}

大神帮我看看有什么问题~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值