JAVA如何使用递归方法实现从1到m中取n(n<=m)个数,并在控制台输出所有情况?

要求
1。不能使用数组
2。方法名称为 void C(int m,int n)
3。如果实现不了,把第1点去掉

如果有满意答案,分数肯定追加!

使用数组的递归:

public class Test12 {
static int M = 4;
static int N = 3;
static int[] a= new int[]{1,2,3,4};
static int[] b = new int[N];

public static void main(String[] args){
C(M,N);
}

static void C(int m,int n){
int i,j;
for(i=n;i<=m;i++) {
b[n-1] = i-1;
if(n>1)
C(i-1,n-1);
else {
for(j=0;j<=N-1;j++)
System.out.print(a[b[j]] + " ");
System.out.println();
}
}
}
}

输出:
1 2 3
1 2 4
1 3 4
2 3 4
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-09
(从1到m中取n(n<=m)个数) 不知道是什么意思,是从1,2,3,4,5……m中n的个数?不是吧 只有一个,说明这个意思是什么,还有 数据源是字符串还是数组 说清楚追问

假设m=4,n=3,就是从1,2,3,4中取3个数。
所有可能分别是
1、2、3
1、2、4
1、3、4
2、3、4
就这样的意思。
像上面的情况,数据源就是整型常量1、2、3、4。
其实我就是想问,如果不用数组装起1、2、3、4,不给用下标,而且方法形参传个m、n进去就能实现,可以么?

相似回答