洛谷—题解 P1706 【全排列问题】

本文介绍了洛谷P1706全排列问题的解题思路,通过DFS(深度优先搜索)方法生成1到n的所有不重复排列。文章强调了输出格式的重要性,并提供了样例输入输出。作者建议使用`printf`来确保输出格式正确,并推荐了《啊哈!算法》一书作为DFS学习资料。此外,还鼓励读者尝试解决其他类似问题,如P1008和P1618,以提升编程能力。
摘要由CSDN通过智能技术生成

原题链接P1706全排列问题

题目描述
输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字。

输入输出格式
输入格式:
n(1≤n≤9)

输出格式:
由1~n组成的所有不重复的数字序列,每行一个序列。每个数字保留5个常宽。

输入输出样例

输入样例#1:
3

输出样例#1:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

题解

题目没有什么难度(如果这句话伤害到了你,那对不起,是我的错),让人无语的是结果的输出格式

卡在输出这里WA了好多次

在这里还是建议用printf输出

printf(“%5d”,&a[i])

输出结果在格式这里就不会错了。

还是简单说一下DFS深度优先搜索,不了解的小伙伴推荐看一下啊哈磊的那本《啊哈!算法》,写的很通俗易懂,也很有趣,适合像我一样初学者的盆友们。

1-9九个数好比1-9九张扑克牌,数组好比盒子。
九个数太多,在这里我就拿1-3举例

开始每个盒子放入对应的扑克,就是1 2 3

走到第4个盒子那里发现手里没有扑克了,就往回走拿起3号盒子里面的3,手里也就只有3没有其他的号码,只好这样,继续往回走;走到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值