鱼C论坛

 找回密码
 立即注册
查看: 2266|回复: 2

[已解决]求助

[复制链接]
发表于 2019-9-20 22:07:29 | 显示全部楼层 |阅读模式

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

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

x
问题是要求水仙花数,就是一个三位数字各个位数数字的三次方之和等于其数字本身
答案理解起来本身没什么问题,

但是我在自己做的时候没加temp = i

然后就输出不了东西,加了temp = i就没问题,求解

答案
for i in range(100, 1000):
    sum = 0
    temp = i
    while temp:
        sum = sum + (temp%10) ** 3
        temp //= 10         # 注意这里要使用地板除哦~
    if sum == i:
        print(i)


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

最佳答案
2019-9-21 02:17:17
for i in range(100,1000,1):
    sum = 0
    while i:
        sum = sum + (i%10)**3
        i //= 10
    if sum == i:    # 这里的i变成了0, 和sum 不会相等了, 所以要把i赋给temp再
        print(i)    # 进行while迭代运算, i的值保持不变
屏幕快照 2019-09-20 下午9.46.25.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-21 02:17:17 | 显示全部楼层    本楼为最佳答案   
for i in range(100,1000,1):
    sum = 0
    while i:
        sum = sum + (i%10)**3
        i //= 10
    if sum == i:    # 这里的i变成了0, 和sum 不会相等了, 所以要把i赋给temp再
        print(i)    # 进行while迭代运算, i的值保持不变
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-21 10:19:49 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 20:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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