从键盘读入n个整数(每个数都是1~9之间的数),输出这n个整数的全排列(数字不能重复)。
时间: 2024-04-30 10:20:27 浏览: 136
输出n个整数的全排列
4星 · 用户满意度95%
这个问题可以使用递归来解决。我们可以将问题分解为两个部分:
1. 选取一个数字作为排列的第一个数字。
2. 对于剩余的数字进行全排列,然后将第一步选取的数字与全排列的结果进行组合。
具体实现见下方代码:
```python
def permute(nums):
res = []
def backtrack(nums, path):
if not nums:
res.append(path)
return
for i in range(len(nums)):
backtrack(nums[:i]+nums[i+1:], path+[nums[i]])
backtrack(nums, [])
return res
n = int(input())
nums = list(range(1, 10))[:n]
res = permute(nums)
for r in res:
print(' '.join(str(x) for x in r))
```
输入样例:
```
3
```
输出样例:
```
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
```
阅读全文