0
已解决
原本开心的看着题,嗯,会做(深搜),但一看到这句话我慒了:
现要求你不用递归的方法输出所有组合。
我虽然用递归AC了,但哪位大佬能跟我讲一下这道题的正解(不用递归)。
题目描述 Description
现在要你从1至n中取出r个数组成一个新的数字,现要求你不用递归的方法输出所有组合。
例如n=5,r=3,所有组合为:
123,124,125,134,135,145,234,235,245,345
输入描述 Input Description
一行两个自然数n,r。
输出描述 Output Description
所有的组合,每一个组合占一行且其中的元素按由小到大的顺序排列,每个元素占三个字符的位置,所有的组合也按字典顺序。
注意哦!输出时,每个数字需要3个场宽,pascal可以这样:write(ans:3);
样例输入 Sample Input
5 3
样例输出 Sample Output
1 2 3
1 2 4
1 2 5
1 3 4
1 3 5
1 4 5
2 3 4
2 3 5
2 4 5
3 4 5
数据范围及提示 Data Size & Hint
1<n<21,1≤r≤n
20豆!
张帆在2021-01-05 20:14:48追加了内容
ding
哪位大佬来啊!
@曹灿阳
@周明轩
张帆在2021-01-05 20:40:51追加了内容
我ding
张帆在2021-01-07 11:56:23追加了内容
ding
0
已采纳
STL大法next_permutation
不知道行不行
黄依成在2021-01-07 12:33:07追加了内容
就是algorithm里的next_permutation函数,意思是下一个排列。
next_permutation(a+1,a+n+1);
上面的代码就是求a数组的下一个排列
输入1 2 3
输出就是1 3 2
黄依成在2021-01-09 17:26:38追加了内容
不知道诶
可以百度一下
黄依成在2021-01-09 17:26:45追加了内容
不知道诶
可以百度一下
0
0
0
0