题库 Python题库 题目列表 设计一个算法,枚举排列问题。输入1-n的第1个排列,如...
问答题

设计一个算法,枚举排列问题。输入1-n的第1个排列,如1 2 3,按照大小输出1~n的所有排列,并统计全部排列总数。
根据上述算法思想,补全下列代码。
描述:输入1-n的第1个排列,如1 2 3,按照大小输出1~n的所有排列。
函数名:perm(n,begin,end)参数表:n -- 整数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)
题目信息
2021年 12月 编程题
-
正确率
0
评论
103
点击