Python每日一题 - 11 - 打印出所有“水仙花数”

前言:

本人因喜欢python和c语言等程序设计语言,希望能够在这里和大家共同学习共同进步。

因个人喜好喜欢做题,所以想出一个系列专栏关于python的习题专集,希望大家喜欢。

希望能在这里分享学习的一些知识碎片,接触时间不长,如果文章有任何错误,欢迎大家指正。

如果喜欢我的文章还请大家不吝动手给我点赞收藏关注哦,留下你来过的足迹,让我眼熟你。

第十一题    打印出所有"水仙花数"

要求:

1.一个三位数,其各位数字的立方和等于该数本身

2.打印出 100-999 的所有水仙花数

可以先自己看要求写出程序,然后看提示及答案,更有助于提高自己。

提示:1.例如:153 = 1的三次方 + 5的三次方 + 3的三次方

第一种方法:

def daffodil():
    list = []
    for i in range(100,1000):
        tmp = (x//100)**3 + (x//10%10)**3 + (x%10)**3
        if tmp == x:
            list.append(x)
        print(list)
list = daffodil()
print(list)

第二种方法:

for m in range(100,1000):
    i = int(m/100)
    j = int(m/10-i*10)
    k = int(m-i*100-j*10)
    if m == i**3+j**3+k**3:
        print(m)

说明:

第一种方法是以此数来求所有位数上的数字

第二种方法是将其各个位数单独求出来,以一个百位数字推出其它位的数字

保存并运行程序,结果如下所示:

153
370
371
407

版权声明:本文为qqgg77原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。