设计算法枚举1~n的所有排列,输入1~n的第一个排列(如1 2 3),按从小到大输出所有排列,并统计排列总数,补全下列代码。
函数名:perm(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)