递归实现组合型枚举
import java.util.Arrays;
import java.util.HashMap;
import java.util.Scanner;
import java.util.*;
public class Main {
static void dfs(int index,int n,int m,List<Integer>list){
if(list.size() == m){
for(int i = 0;i < m;i++){
System.out.print(list.get(i));
if(i == m - 1){
System.out.println();
}else {
System.out.printf(" ");
}
}
return;
}
if(index >= n) return;
for(int i = index;i < n;i++){
list.add(i+1);
dfs(i+1,n,m,list);
list.remove(list.size() - 1);
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
List<Integer> mylist = new ArrayList<>();
dfs(0,n,m,mylist);
}
}
