【程序 1】
题目:有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
方法一:
# 1.程序分析:可填在百位、十位、个位的数字都是 1、2、3、4。组成所有的排列后再去
# 掉不满足条件的排列。
# 2.程序源代码:
count=0
results=[]
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if i!=j and j!=k and k!=i:
number=i*100+j*10+k
results.append(number)
count+=1
print(f"能组成{count}个互不相同且无重复数字的三位数。")
print("这些三位数分别是:")
for num in results:
print(num)
# 代码解释:
# count
# 用于记录符合条件的三位数的数量。
# results
# 用于存储所有符合条件的三位数。
# 三层嵌套循环分别遍历1到4的所有组合。
# if i != j and j != k and k != i 用于检查三个数字是否互不相同。
# number = i * 100 + j * 10 + k
# 将三个数字组合成一个三位数。
# 将符合条件的三位数添加到
# results
# 列表中,并增加
# count
# 的值。
# 最后输出符合条件的三位数的数量和具体的三位数。
方法二:
# 你可以使用Python的itertools库中的permutations函数来轻松地生成所有可能的无重复数字的三位数。以下是Python代码:
import itertools
# 定义数字列表
numbers = [1, 2, 3, 4]
# 使用itertools.permutations生成所有可能的三位数排列
# 由于我们只需要三位数,所以指定长度为3
three_digit_numbers = list(itertools.permutations(numbers, 3))
# 打印结果
print(f"可以组成 {len(three_digit_numbers)} 个互不相同且无重复数字的三位数,分别是:")
for number in three_digit_numbers:
# 将元组转换为整数并打印
print(int(f"{number[0]}{number[1]}{number[2]}"))
# 这段代码首先导入了itertools库,然后定义了一个包含数字1、2、3、4的列表。
# 接着,它使用itertools.permutations函数生成了所有可能的三位数排列,
# 并将结果存储在three_digit_numbers列表中。最后,它遍历这个列表,将每个排列(元组形式)转换为一个整数并打印出来。
# 注意:itertools.permutations生成的是元组的列表,每个元组代表一个排列。
# 在上面的代码中,我们通过格式化字符串将这些元组转换为了整数形式。
# 运行这段代码,你将得到所有可能的24个无重复数字的三位数。
答案:
可以组成 24 个互不相同且无重复数字的三位数,分别是: 123 124 132 134 142 143 213 214 231 234 241 243 312 314 321 324 341 342 412 413 421 423 431 432
柳志军:13418977808(手机微信),QQ:93684042
浙公网安备 33010602011771号