鱼C论坛

 找回密码
 立即注册
查看: 1503|回复: 4

[已解决]Python舊版第九講動動手01求水仙花數

[复制链接]
发表于 2020-8-27 08:08:28 | 显示全部楼层 |阅读模式

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

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

x
該題題目: 编写一个程序,求 100~999 之间的所有水仙花数。

自己暴力的寫法:
for x in range(100,1000):
    x = str(x)
    a = int(x[0])**3
    b = int(x[1])**3
    c = int(x[2])**3
    x = int(x)
    if x == a+b+c:
        print(x)


小甲魚的解答:
for i in range(100, 1000):
    sum = 0
    temp = i
    while temp:
        sum = sum + (temp%10) ** 3
        temp //= 10         
    if sum == i:
        print(i)


問題>>> while 迴圈內的意思看不懂
    while temp:
        sum = sum + (temp%10) ** 3
        temp //= 10  
本身數學不是很好,有勞各位前輩,大神指點,感謝

最佳答案
2020-8-27 09:12:11


看看这个能不能帮助到你:https://fishc.com.cn/forum.php?m ... 562&pid=4878028
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-27 08:20:31 | 显示全部楼层
本帖最后由 1q23w31 于 2020-8-27 08:34 编辑

以水仙花数153为例,即temp=153
第一次循环:
sum=0+(153%10)**3,#sum=3**3=27
temp //= 10#运用地板除法,temp=15
第二次循环:
sum=sum+(15%10)**3,#sum=3**3+5**3=152
temp //= 10#运用地板除法,temp=1
第三次循环:
sum=sum+(1%10)**3,#sum=3**3+5**3+1**3=153
temp //= 10#运用地板除法,temp=0
第四次循环判断,while temp:#temp=0,不满足条件退出循环
if sum == i:  #判断sum与i值是否相同
        print(i)  #输出i值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-8-27 09:12:11 | 显示全部楼层    本楼为最佳答案   


看看这个能不能帮助到你:https://fishc.com.cn/forum.php?m ... 562&pid=4878028
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-8-29 10:15:25 | 显示全部楼层
Twilight6 发表于 2020-8-27 09:12
看看这个能不能帮助到你:https://fishc.com.cn/forum.php?mod=redirect&goto=findpost&ptid=176562&pi ...

連結中的第二回覆,有解釋到想理解的部分,感謝


                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-29 10:15:57 | 显示全部楼层
1q23w31 发表于 2020-8-27 08:20
以水仙花数153为例,即temp=153
第一次循环:

感謝回覆
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 03:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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