首先,关于水仙花数的定义:如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3
,因此 153 就是一个水仙花数。
代码如下:
for i in range(100, 1000):
if i == int(i/100) ** 3 + (i % 10) ** 3 + int(i % 100 / 10) ** 3:
print(i)
涉及到两个知识点,一是for
循环,另一个是简单的数学运算,利用模运算求一个三位数的个位数、十位数、百位数。
个位数: int(i % 100 / 10) #int()函数向下取整,如int(2.2) = 2
十位数:(i % 10)
百位数:int(i/100)