【思路】
与排列类似 但是排列的结果有重复组合 需保证 下一个要选的数比当前的大 这样就能使得到的组合是递增的
import java.util.Scanner;
public class Main{
static int n, m;
static int []f;
// cur表示当前选的 t表示深度
public static void dfs(int cur, int t){
if( t > m) return;
if(t == m){
for(int i = 0; i < t; i ++) System.out.print(f[i]+" ");
System.out.println();
return;
}
for(int i = cur; i <= n; i++){
f[t] = i; //当前选i 规定下一个从i + 1开始选起 保证升序
dfs(i + 1, t + 1);
}
}
public static void main(String args[]){
Scanner reader = new Scanner(System.in);
n = reader.nextInt();
m = reader.nextInt();
f = new int[n];
dfs(1, 0);
}
}