python练习题6.8输出全排列(选作)
程序员文章站
2022-06-27 20:30:16
输入整数n(3= jc(n): break #首先要知道n个数字有n!种排列,我们用这个判断数据的数量 random.shuffle(t) #随机排序 t1.add("".join(t)) #这里使用set集合是避免重复的数据s = sorted(t1)for i in s: print(i)这个题... ......
输入整数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!种排列。
读书和健身总有一个在路上
下一篇: vue 数据双向绑定 个人实现版