求水仙花数是循环和判断语句相结合的一个经典案例。
思路分析
通过循环遍历100到999之间的数字然后根据他们的个位,十位,百位上的数字立方和是否为他本身来判断分析得出什么数是水仙花数。
1)如何循环遍历100到999的所有数字?
使用while循环语句即可。
2)如何求出一个三位数的个位,十位,百位上的数字是多少?
例子:有一个三位数123,求出他的个位,十位,百位上的数字是多少。
个位:123对10取模即可:123 % 10 = 3
十位:先对123整除10得到12,然后12对10取模即可:123 // 10 % 10 = 2
百位:123整除100即可: 123 // 100 = 1
这个方法适用于所有三位数求他自身的个位,十位,百位上的数字是几,可以放心使用。
3)如何判断出一个数是不是水仙数数?
使用if判断语句来分析:如果一个数自身的个位数,十位数,百位数的立方和是他本身则判定为true并打印输出这个数。
案例代码如下
# 水仙数数
i = 100
a = 0
b = 0
c = 0
while i < 1000:
a = i % 10 # 个位上的数字是几
b = i // 10 % 10 # 十位上的数字是几
c = i // 100 # 百位上的数字是几
if a ** 3 + b ** 3 + c ** 3 == i:
print(i)
i += 1 # 循环判断完一次后i自增1
案例运行结果如下