马虎的算式python实现

博客围绕‘马虎的算式’问题展开,采用Python语言解决。思路是通过暴力枚举,利用集合set判断是否为五个不同的数,排除含0的数,再用字符串切片和拼接进行调整。

问题描述

标题: 马虎的算式

小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。

有一次,老师出的题目是:36 x 495 = ?

他却给抄成了:396 x 45 = ?

但结果却很戏剧性,他的答案竟然是对的!!

因为 36 * 495 = 396 * 45 = 17820

类似这样的巧合情况可能还有很多,比如:27 * 594 = 297 * 54

假设 a b c d e 代表1~9不同的5个数字(注意是各不相同的数字,且不含0)

能满足形如: ab * cde = adb * ce 这样的算式一共有多少种呢?

思路分析及代码

思路:这道题暴力枚举即可,然后可以利用集合set来判断是否是五个不同的数,然后把含有0的数排除掉,最后利用字符串的切片和拼接来调整即可

def solve():
    num = 0
    for i in range(10000, 100000):
        a = str(i)
        if a.count('0') == 0:
            if len(set(a)) == 5:
                b = int(a[0]+a[1]) * int(a[2]+a[3]+a[4])
                c = int(a[0]+a[3]+a[1]) * int(a[2]+a[4])
                if b == c:
                    num += 1
    return num


print(solve())
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会写代码的嘤嘤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值