编程心得

95 篇文章 2 订阅

满足abcd*e=dcba条件的四位数

""" 有一个数学等式:abcd*e=dcba(一个字母代表一位数字,其中a非0,e非0非1)。问:
(1)满足条件的四位数共有多少个?
(2)最小的abcd及与之相对应的e?"""
count = 0
result = []
for a in range(1, 10):
    for b in range(10):
        for c in range(10):
            for d in range(10):
                for e in range(2, 10):
                    if (a * 1000 + b * 100 + c * 10 + d) * e == d * 1000 + c * 100 + b * 10 + a:
                        count += 1
                        result.append((a * 1000 + b * 100 + c * 10 + d, e))
result.sort(key=lambda x: x[0])
print("共有{0}个".format(count))
print("最小的abcd:{0},与之对应的e:{1}".format(result[0][0], result[0][1]))

这个程序是照搬网上的解题思路,改进一下会更好。

count = 0
result = []
for i in range(1000, 10000):
    for e in range(2, 10):
        if i * e == int(str(i)[::-1]):
            count += 1
            result.append((i, e))
# result.sort(key=lambda x: x[0])
print("共有{0}个".format(count))
print("最小的abcd:{0},与之对应的e:{1}".format(result[0][0], result[0][1]))
D:\Python\study\venv\Scripts\python.exe D:/Python/study/test17.py
满足条件的四位数共有2个
最小的abcd:1089,与之对应的e:9

Process finished with exit code 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值