輸入整數n(3<=n<=7),撰寫程式輸出1,2,...,n整數的全排列,按字典序輸出,
輸入格式:
一行輸入正整數n,
輸出格式:
按字典序輸出1到n的全排列,每種排列占一行,數字間無空格,
輸入樣例:
在這里給出一組輸入,例如:
3
輸出樣例:
在這里給出相應的輸出,例如:
123
132
213
231
312
321代碼如下:
#!/usr/bin/python # -*- coding: utf-8 -*- import random #求階乘 def jc(n): sum = 1 for i in range(1,n+1): sum *= i return sum n = int(input()) t = list() t1 = set() for i in range(1,n+1): t.append(str(i)) while True: if len(t1) >= jc(n): break #首先要知道n個數字有n!種排列,我們用這個判斷資料的數量 random.shuffle(t) #隨機排序 t1.add("".join(t)) #這里使用set集合是避免重復的資料 s = sorted(t1) for i in s: print(i)
這個題目不難,記住下面兩點即可,
1、random模塊中的shuffle函式,這個函式是隨機排序,
2、n個數字有n!種排列,
讀書和健身總有一個在路上
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/153800.html
標籤:Python
下一篇:用Python郵件發送,新手必學
