第15985题 程序题
补全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)
编辑模式
程序运行统计
暂无判题统计