今天复习一下打印所有的水仙花数。
所谓水仙花数,就是指如果一个三位数,等于个数、十位、百位上的数字的立方和,那么该三位数就是水仙花数。
既然是让电脑自己打印,所以我们先要把所有的三位数列出来,然后让电脑判断,如果是,就打印出来,不是,就不用管它。
那么我们可以利用 for i in range(100,1000) 这样一个自带的数据,用术语应该是遍历,把所有的三位数都筛一遍。
然后再用if 语句,加以判断,如果满足,就打印。
那么满足什么条件呢?
当然是i=个位数的3次方+十位数3次方+百位数的3次方。
问题是给出一个i,电脑怎么提取个位数、十位数、百位数呢?
这里我们要用到相关的运算符//,%。
a//b 这个运算符,表示的意义是取商的整数部分,比如345//10意思是商的整数部分是34,如果把345//100表示的就是商为3,这样我们就能找到这个三位数的百位数字。
想要找到345的个位数字5,我们可以利用%运算符,它表示的意义是取余数,如345%10的余数就算5。
我们还需要提取十位数字4,可以把两个运算符结合起来用,345//10%10,先得到商是34,再得到余数是4。
好,下面我们给出代码
for a in range(100,1000):
b = a%10
c = a//10%10
d = a//100
if a == b**3+c**3+d**3:
print(a)
最后1000以内的水仙花数一共是四个:153,370,371,407。
转载请注明:XAMPP中文组官网 » Python打印所有的水仙花数