鱼C论坛

 找回密码
 立即注册
查看: 3019|回复: 6

[已解决]求100-999之间所有水仙花数。

[复制链接]
发表于 2017-7-3 17:42:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#如果一个3位数等于其各位数之的立方和,则称这个数为水仙花数。例如:153 =1**3+5**3+3**3,153就是一个水仙花数。
for x in range(101,1000):
    sum = 0
    temp = x
    while temp:
        sum = sum + (temp%10)**3
        temp //= 10
    if sum == x:
        print(x)

这个请大侠帮忙解释下上面代码的解题思路,非常感谢!
最佳答案
2017-7-3 18:13:14
就是筛选法啊,把每一个三位数的个十百位都取出来,然后验证符合不符合题设。
http://pythontutor.com/visualize.html#mode=edit
可以去这个网站看过程。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-7-3 18:13:14 | 显示全部楼层    本楼为最佳答案   
就是筛选法啊,把每一个三位数的个十百位都取出来,然后验证符合不符合题设。
http://pythontutor.com/visualize.html#mode=edit
可以去这个网站看过程。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-3 22:26:12 | 显示全部楼层
例如,for循环到153的时候:
0 = 0 + (153%10)**3       =  27(也就是个位数的三字方)
        temp //= 10             =15, (刚才算完了个位数,现在是十位和百位)

27= 27+(15%10)**3   = 125(也就是十位数的三字方)
       = 1

while 循环结束,
三者相加等于这个数值本身,打印出来
然后for循环继续下一个数


说的有点儿乱,请问能理解吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-4 14:47:22 | 显示全部楼层
ooxx7788 发表于 2017-7-3 18:13
就是筛选法啊,把每一个三位数的个十百位都取出来,然后验证符合不符合题设。
http://pythontutor.com/vis ...

这个网站需要搭梯子吗?好久打不开。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-4 14:47:54 | 显示全部楼层
Hi_kiber 发表于 2017-7-4 14:47
这个网站需要搭梯子吗?好久打不开。

不需要啊,正常就能打开。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-4 15:34:46 | 显示全部楼层
ooxx7788 发表于 2017-7-3 18:13
就是筛选法啊,把每一个三位数的个十百位都取出来,然后验证符合不符合题设。
http://pythontutor.com/vis ...

网站已打开,谢谢。还是自己对循环理解不透彻所致。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-4 15:36:27 | 显示全部楼层
影乖 发表于 2017-7-3 22:26
例如,for循环到153的时候:
0 = 0 + (153%10)**3       =  27(也就是个位数的三字方)
        temp / ...

明白您想表达的意思,有启发,但如果不看您的解释,自己是无论如何想不到这个方法的。所以,从思路上来讲,还是严重欠缺。看来任重道远!

多谢啦!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-28 09:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表