补全Python实现1~n全排列枚举及总数统计的代码
题目要求
设计算法枚举1~n的所有排列,输入1~n的第一个排列(如1 2 3),按从小到大输出所有排列,并统计排列总数,补全下列代码。
函数说明
函数名:perm(n, begin, end)
参数表:
- n:存储排列的整数列表
- begin:排列当前处理位置的起始索引
- end:排列最后一个元素的索引
返回值:无返回值,逐行输出1~n的所有排列。
输入输出示例
输入:1 2 3
输出:
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 2, 1]
[3, 1, 2]
排列总数是:6个!
待补全代码
COUNT = 0
def perm(n, begin, end):
global COUNT
if ①:
print(n)
COUNT += 1
else:
i = begin
for num in ②:
n[num], n[i] = n[i], n[num]
③
n[num], n[i] = n[i], n[num]
arr = input("1-n的第1个排列:")
n = [int(n) for n in arr.split()]
④
print("排列总数是:%d个!" % COUNT) 本题为编程题,提交代码并运行通过测试点后判分。
正在加载题目数据…
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析