package com.nciae.yjz;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class Combination {
static int arr[];
static List<String> list = new LinkedList<>();
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
arr = new int[num];
for (int i = 0; i < arr.length; i++) {
arr[i] = i + 1;
}
for (int i = 1; i <=arr.length; i++) {
dfs(0, 0,i);//c15 c25 c35 c45 c55 都选一次
}
//比方说仅想要 c35 就可以输入5然后 ,用dfs(0,0,3);
}
//cur:要了多少个值, i:第i个值要不要,exit:代表着多少个值 开始退出
private static void dfs(int cur, int i,int exit) {
if (cur == exit) {
System.out.println(list);
return;
}
if (i == arr.length)
return;
//要这个
list.add("" + arr[i]);
dfs(cur + 1, i + 1,exit);
//回溯,不要这个
list.remove("" + arr[i]);
dfs(cur, i + 1,exit);
}
}
java递归实现组合
最新推荐文章于 2023-05-26 09:20:20 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)