python基本算法合集(11)——找水仙花数

所谓水仙花数就是给定随机的三位数,它的各位数字的三次幂之和等于它本身,如:

三位数153=1^+5^3+3^3

要求编程实现判断给定范围内的水仙花数。

难点在于要分解出三位数的个位数、十位数和百位数。

下面用153为例,分解百位数、十位数和个位数

分解百位数:153//100=1

分解十位数:153//10%10=5

分解个位数:153%10=3

其实只要把要分解的数字想办法弄到个位上去,即往前点小数点,如要分解百位数就要把1弄到个位数上去即往前点2为即1.53,分解十位数即将小数点往前点1位即15.3再与10取余,分解个位数简单了与10取余即可。代码如下:

for n in range(0,100000000):
    i=n//100#得到百位数
    j=n//10%10#得到十位数
    k=n%10#得到个位数
    if n==i**3+j**3+k**3:
        print('水仙花数:{}'.format(n))

执行效果如下:

猜你喜欢

转载自blog.csdn.net/weixin_43115314/article/details/114230417