首先想到的是利用for循环遍历10000-100000,得到这个数 i(abcde)的万位a,千位b,百位c,十位d,个位e,计算得到 r(edcba),使用if条件判断:i*4=r 输出 i
解法一:
# 解法1
for i in range(10000, 100000):
a = i // 10000
b = i // 1000 % 10
c = i % 1000 // 100
d = i % 100 // 10
e = i % 10
r = e * 10000 + d * 1000 + c * 100 + b * 10 + a
if i * 4 == r:
print(i)
换一个思路:利用字符串
可以将这个五位数 i 转换成字符串;重新组合得到 r,利用for循环遍历加条件判断得到 i
解法二:
# 解法2
for i in range(10000, 100000):
s = str(i)
r = s[-1] + s[-2] + s[2] + s[1] + s[0]
if str(i * 4) == r:
print(i)
有人说:你这还是不够简单。 ta让我用一行代码求出 i 。
我攥紧了沙包大的拳头,当ta掏出手机,打开微信支付的时候,我松开了
**一行代码包括for循环和条件判断?
这不是推导式(生成器)吗?
**又发现这个 r 不就是 i 的倒序吗?
解法三:
# 解法3
l = [i for i in range(10000, 100000) if str(i * 4) == str(i)[::-1]]
print(*l)
一行代码=20块,还行
最后的结果:21978 (21978*4=87912)文章来源:https://www.toymoban.com/news/detail-409830.html
(4也可以改成别的数)文章来源地址https://www.toymoban.com/news/detail-409830.html
到了这里,关于利用Python求:若一个五位数是abcde,此数乘以4之后得到edcba,求这个数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!