问题:如果一个3位数等于其各位数字的立方和,则称这个数为水仙花数。求1000以内的水仙花数(3位数) 最简单的思路,3个数字都是0-9,3个数字组成的三位数==各自的立方的和,得出结果。
for x in range(0,10):
for y in range(0, 10):
for z in range(0, 10):
sxh = int("{}{}{}".format(x,y,z))
sum = (x**3) + (y**3) + (z**3)
if sxh == sum and sxh >= 100:
print("三位数的水花数是:{}".format(sxh))
先得出1个三位数,然后分解出百十个3个数,最终判断。
sxh_list = []
for sxh in range(100, 1000):
a = sxh // 100
b = (sxh - a * 100) // 10
c = sxh - a * 100 - b * 10
if sxh == ((a**3) + (b**3) + (c**3)):
sxh_list.append(sxh)
print("三位数的水花数是:{}".format(sxh_list))