【python实战】top1 数字组合——有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

先上源代码

count = 0
for a in range(1, 5):
    for b in range(1, 5):
        for c in range(1, 5):
            if (a != b) and (b != c) and (a != c):
                print(100*a+10*b+c)
                count += 1
print(f'一共有{count}种')

解析

一共是3位数那就3个循环,每一位只有1-4所以循环(1-4)【注:range(1, 5)是指循环1-4,不包含5】
然后进行判定三次循环的值不能够重复
对得到的数据进行处理就得到了我们想要的数值及个数。

方法二

使用迭代器函数

itertools — 为高效循环而创建迭代器的函数

在这里插入图片描述
根据题目要求我们可以使用itertools.permutations
在这里插入图片描述

上源码

import itertools

count = 0
a = [1, 2, 3, 4]
for i in itertools.permutations(a, 3):
    print(i[0]*100+i[1]*10+i[2])
    count += 1
print(f'一共有{count}种')

返回的i是以元组的形式,对元组进行处理即可得到有关的结果。

猜你喜欢

转载自blog.csdn.net/weixin_45623093/article/details/113177709