递归实现组合型枚举
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); } }