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

  • Post author:
  • Post category:python




前言:



本人因喜欢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 版权协议,转载请附上原文出处链接和本声明。