一、题目
打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
二、分析
1、思路①
将一个三位数拆分为三个数,匹配等式则输出
2、思路②
利用字符串切片拆分三位数
三、方案
1、方案①
def total(num):
gw = num % 10
sw = (num // 10) % 10
bw = num // 100
return gw ** 3 + sw ** 3 + bw ** 3
for i in range(100, 1000):
if i == total(i):
print('水仙花数:', i)
输出结果:
水仙花数: 153
水仙花数: 370
水仙花数: 371
水仙花数: 407
2、方案②
def total(num):
s = str(num)
gw = int(s[-1])
sw = int(s[-2])
bw = int(s[-3])
return gw ** 3 + sw ** 3 + bw ** 3
for i in range(100, 1000):
if i == total(i):
print('水仙花数:', i)
输出结果:
水仙花数: 153
水仙花数: 370
水仙花数: 371
水仙花数: 407
四、交流
如果你有更好的解法或者有不同的意见,大家可以畅所欲言,共同提高进步!
加入qq群一起交流学习:818757567
图.png群主也是小白一枚,零基础学习python,要勇于提问,大家共同探讨,共同学习进步!
知之为知之,不知为不知,是知也!
网友评论