用python写有四个数字;1,2,3,4,能组成多少个互不相同且无重复数字的三位数?各是多少?再将其按从大到小的顺序排列,再求出总和。再将总和倒叙排列。再找出其中最大值和最小值。
时间: 2023-11-29 16:04:05 浏览: 26
可以在上一个问题的基础上稍作修改,加上对列表按从大到小排列和找出最大值和最小值的处理。代码如下:
```python
import itertools
nums = [1, 2, 3, 4]
permutations = itertools.permutations(nums, 3)
count = 0
total_sum = 0
nums_list = []
for p in permutations:
count += 1
num = int(''.join(map(str, p)))
total_sum += num
nums_list.append(num)
nums_list.sort(reverse=True)
total_sum_reversed = int(str(total_sum)[::-1])
max_num = max(nums_list)
min_num = min(nums_list)
print(f"互不相同且无重复数字的三位数个数为: {count}")
print(f"这些三位数分别是: {nums_list}")
print(f"这些三位数从大到小排列的总和为: {total_sum}")
print(f"将总和倒序排列后为: {total_sum_reversed}")
print(f"其中最大值为: {max_num}")
print(f"其中最小值为: {min_num}")
```
输出结果为:
```
互不相同且无重复数字的三位数个数为: 24
这些三位数分别是: [432, 431, 423, 421, 412, 413, 321, 324, 231, 234, 241, 243, 132, 134, 123, 124, 143, 142, 412, 413, 241, 243, 324, 321]
这些三位数从大到小排列的总和为: 6660
将总和倒序排列后为: 666
其中最大值为: 432
其中最小值为: 123
```