首页 > 编程语言 > 详细

求 100~999 之间的所有水仙花数(python超级入门)

时间:2020-08-07 00:08:33      阅读:112      评论:0      收藏:0      [点我收藏+]

------------恢复内容开始------------

如果一个3位数等于其各位数字的立方和,则称这个数为水仙花数。

一般思路:随机函数生成100~999的三位数,一次做运算,算出各位数字,在做立方相加,跟原数比较,如果相等就输出

再次弹了弹自己的傻瓜脑子,python的运算符过于智能,用/一直没有结果,这里要用地板除向下取个整数即可

for i in range(100,1000):
    sum = 0
    a = i//100
    b = (i-a*100)//10
    c = i-a*100-b*10
    sum = a**3 + b**3 + c**3
    if sum == i:
        print(i)

运行结果:

D:\Python\python.exe D:/Python/test/水仙花数.py
153
370
371
407

如果是(100,10000000)呢,这个本方法就要定义很多个变量,占用空间不说,若范围继续扩大,唉太垃圾了 

网上参考答案:

for i in range(100,1000):
    sum = 0
    temp = i
    while temp:
        sum = sum +(temp%10) ** 3
        temp //= 10
    if sum == i:
        print(i)

i

------------恢复内容结束------------

求 100~999 之间的所有水仙花数(python超级入门)

原文:https://www.cnblogs.com/mumulucky/p/13449671.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!