首页 Python练习题库_Python100经典习题 练手习题001:数字组合方式统计
pay pay

练手习题001:数字组合方式统计

日期: 2021年11月16日 07:04
栏目: 练习题库
阅读: 346
作者: Python自学网

摘要: 现在要求使用1,2,3,4这四个数字组合成一个三位数字,要求这个三位数个位、十位和百位上的数字不能出现相同的数字。

一、题目

现在要求使用1,2,3,4这四个数字组合成一个三位数字,要求这个三位数个位、十位和百位上的数字不能出现相同的数字。

二、题目分析

其实这个问题在数学上很好解决,也就是阶乘:4 * 3 * 2 * 1 = 24就算出来了,24中不同的组合方式,但是要通过代码把它表述出来就有点抽象了,下面我们来分析一下。

类似于这样的操作明显是不断的循环,循环出所有的可能性之后把满足“个位、十位和百位上的数字不能出现相同数字”这个条件的三位数给拿出来就可以了。那么我们就用下面的代码给大家展示一下。

三、解答

解答方式1:

total = 0  # 先定义一个变量来统计后面满足条件的数字个数
for a in range(1, 5):  # 先把百位数字的所有可能性循环出来,注意这里的range的半闭半开区间
    for b in range(1, 5):  # 先把十位数字的所有可能性循环出来
        for c in range(1, 5):  # 先把个位数字的所有可能性循环出来
            if ((a!=b) and (b!=c) and (c!=a)):  # 通过题目给出的条件进行不等于筛选
                print(a, b, c)  # 打印这三个数字
                total += 1  # 统计符合条件的数字个数
print(total)  # 一共多少个

解答方式2:

import itertools  # 导入itertools模块
total = 0  # 定义一个变量来统计后面满足条件的数字个数
a = [1, 2, 3, 4]  # 把四个数字放入列表中
for i in itertools.permutations(a, 3):  # 通过itertools里面的方法permutations来处理我们想要的结果
    print(i)
    total += 1
print(total)

 

部分文字内容为Python自学网原创作品,转载请注明出处!视频内容已申请版权,切勿转载!
# 相关文章
# 相关视频
回顶部