輸入整數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!種排列。
讀書和健身總有一個在路上