【程序 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

  

 

 

  

 

 

posted on 2024-09-07 20:25  柳志军  阅读(254)  评论(0)    收藏  举报