输入整数n(3<=n<=7),编写程序输出1,2,....,n整数的全排列,按字典序输出。
输入样例:
输入:3
输出:123 132 213 231 312 321
import itertools
n=int(input())
s=[]
for i in range(1,n+1):
s.append(i)
num=list(itertools.permutations(s,n)) #要list,不然它只是一个对象
for c in num:
for d in c:
print(d,end= '')
print()
输出不符,请求各位的帮忙。
import random
n = int(input())
t = list()
t1 = set()
for i in range(1,n+1):
t.append(str(i))
while True:
sum = 1
for i in range(1, n + 1):
sum *= i
if len(t1) >= sum:
break
random.shuffle(t)
t1.add("".join(t))
s = sorted(t1)
for i in s:
print(i,end=" ")
记得点个采纳,谢谢
#!/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)
#!/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)
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m