Python实现输入8位数字,提问1:输出不重复的数字;提问2:这一串不重复的数字(假设有n位),求问这n个数能组成多少个既没有重复数字又不相同的n位数?并将其按从小到大输出
时间: 2023-05-27 20:04:29 浏览: 70
1. 实现输入8位数字,输出不重复的数字
``` python
num = input("请输入8位数字:")
num_list = list(num)
num_set = set(num_list)
print("不重复的数字为:", end="")
for num in num_set:
print(num, end="")
```
2. 实现输入n位不重复的数字,求这n个数能组成多少个既没有重复数字又不相同的n位数,并将其按从小到大输出
``` python
import itertools
num = input("请输入n位不重复的数字:")
num_list = list(num)
n = len(num_list)
num_set = set(num_list)
# 判断数字是否重复
if len(num_set) != n:
print("输入有误,请输入n位不重复的数字!")
else:
# 组合所有满足要求的n位数
perm_set = set(itertools.permutations(num_list, n))
result = []
for perm in perm_set:
if perm[0] != "0" and perm not in result:
result.append(perm)
result.sort()
print("能组成%d个既没有重复数字又不相同的%d位数,依次为:" % (len(result), n))
for r in result:
print("".join(r))
```
注意:如果输入的数字中有0,则无论组合出多少个数字,开头都不能以0开始,因此要排除以0开头的数字。
阅读全文