1.什么是水仙花数
所谓“水仙花数”,是指一个3位数,其各位数字的立方和等于该数本身。
例如: 153是一个“水仙花数”,因为153 = 1的立方+3的立方+5的立方
2.问题
求出100~999之前的所有“水仙花数”
3.算法分析
解这个题目的关键是怎样从一个3位数中分离百位数、十位数、个位数。
可以假设该3位数以i表示,由a,b,c三个数字组成。
百位数字 a = int(i/100).
十位数字 b=int((i-100*a)/10)
个位数字 c = i -int(i/10)*10
4.具体实现
for i in range(100, 999):
a = i // 100
b = (i % 100) // 10
c = i % 10
if i == a ** 3 + b ** 3 + c ** 3:
print(i)
运行结果:

|