import java.util.Scanner;
/**
* @author:Ravanla
* @vreate:2019-10-26-8:45
*/
public class Combine {
int n,r;
int[] A;
public Combine(){
Scanner sc = new Scanner(System.in);
n = sc.nextInt();// 一共有多少个数
r = sc.nextInt();// 多少个数为一组
A = new int[r + 1];
A[0] = 0;
funCombine(1);// 从下标为1的位置开始放数字
}
void funCombine(int index) {
if(index > r){// 如果下标大雨组合的数目了就打印
for (int a = 1; a <= r; a++) System.out.print(A[a] + " ");
System.out.println();
return;
}
for(int i = A[index - 1] + 1; i <= n; i++){// int i = A[index - 1] + 1 i的值比前一个数大1,
//第一次进入循环大1,第二次进入循环大2,以此类推
A[index] = i;// 把这个i放到对应的下标下
funCombine(index + 1);
}
}
public static void main(String[] args) {
Combine c = new Combine();
}
}
JAVA--组合--带动态图
最新推荐文章于 2023-02-07 14:29:09 发布