您现在的位置是:首页 > 编程 > 

递归实现指数型枚举

2025-07-20 04:16:03
递归实现指数型枚举 递归实现指数型枚举从 1∼n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。输入格式 输入一个整数 n。输出格式 每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好 1 个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。数据范围 1≤n≤15 输入样例: 输出样例: 2 2

递归实现指数型枚举

递归实现指数型枚举

从 1∼n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。

输入格式 输入一个整数 n。

输出格式 每行输出一种方案。

同一行内的数必须升序排列,相邻两个数用恰好 1 个空格隔开。

对于没有选任何数的方案,输出空行。

本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。

数据范围 1≤n≤15 输入样例: 输出样例:

2 2 1 1 1 2 1 2

提交代码

代码语言:javascript代码运行次数:0运行复制
import java.util.*;

public class Main
{
    static ArrayList<Integer> list = new ArrayList<>();
    static boolean [] st = new boolean[20];
    static int n;
    static void dfs (int u, int m, int start)
    {
        if (u == m)
        {
            Iterator it = list.iterator();
            while(it.hat())
            {
                print(() + " ");
            }
            println();
            return;
        }
        for (int i = start; i <= n; ++ i)
        {
            if (!st[i])
            {
                st[i] = true;
                list.add(i);
                dfs (u + 1, m, i + 1);
                st[i] = false;
                list.remove(list.size() - 1);
            }
        }
    }
    public static void main(String [] args)
    {
        Scanner in = new Scanner(System.in);
        n = ();
        println();
        for (int i = 1; i <= n; ++ i)
        {
            dfs (0, i, 1);
        }
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-01-20,如有侵权请联系 cloudcommunity@tencent 删除intliststatic递归数据

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1151223.html

相关标签:无
上传时间: 2025-07-20 00:31:42
留言与评论(共有 9 条评论)
本站网友 中国航空器材集团公司
1分钟前 发表
输入格式 输入一个整数 n
本站网友 保健养生
20分钟前 发表
i
本站网友 普洱茶生茶好还是熟茶好
15分钟前 发表
如有侵权请联系 cloudcommunity@tencent 删除前往查看intliststatic递归数据
本站网友 三天不打上房揭瓦
26分钟前 发表
m
本站网友 北京门面出租
23分钟前 发表
同一行内的数必须升序排列
本站网友 菜鸟网络官网
15分钟前 发表
i + 1); st[i] = false; list.remove(list.size() - 1); } } } public static void main(String [] args) { Scanner in = new Scanner(System.in); n = (); println(); for (int i = 1; i <= n; ++ i) { dfs (0
本站网友 赵永贵
8分钟前 发表
i + 1); st[i] = false; list.remove(list.size() - 1); } } } public static void main(String [] args) { Scanner in = new Scanner(System.in); n = (); println(); for (int i = 1; i <= n; ++ i) { dfs (0
本站网友 极速特警
1分钟前 发表
分享自作者个人站点/博客