1,水仙花数
所谓的水仙花数是指:一个n 位数( n≥3 ),它的每个位上的数字的n 次幂之和等于它本身。 例如153,370,371,407等都是水仙花数,就拿153来说,153 = 1*1*1 + 5*5*5 + 3*3*3.
问题:输出100~999之间的所有“水仙花数”。
实现思路:
根据“水仙花数”的特点来展开分析,某个三位数假设为item的个位,十位,百位上的数字判断它们的立方和是否等于item,若等于,则输出item,此过程是一个循环,只要item在(100,1000)之间,循环执行。
现在来看item的各位数字如何获得。首先需要定义三个变量ge,shi,bai分别记录item的各位数字。
对于一个三位数item,其百、十、个位数字为bai,shi,ge,则可知:bai*100+shi *10+ge *1=item
百位数(bai):item//100等于其百位数字。
十位数(shi):若对item有item//10,则可以得到item的百位和十位组成的一个两位数,如:153//10=15。再用这个两位数%10,便得到了十位数字shi。
个位数(ge):上面已经得到item的百位和十位,易得个位数为item%10。
2,用for in 循环来实现代码如下
for item in range(100,1000):
ge = item%10 #个位
shi = item//10%10 #十位
bai = item//100 #百位
# print(ge,shi,bai)
#判断
if(ge**3+shi**3+bai**3==item):
print(item)
3,结果如下: