鱼C论坛

 找回密码
 立即注册
查看: 2508|回复: 3

Python课后题水仙花问题~

[复制链接]
发表于 2016-6-10 11:25:45 | 显示全部楼层 |阅读模式

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

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

x
%1J%HI%Z3T`PS_4}VEC]L{J.png

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

表示,没有看懂,有大神能指导指导吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-6-10 14:45:35 | 显示全部楼层
举个例子你就晓得了,for循环是遍历100到1000的数,while循环是用来判断for中当前的数是否为水仙花数的!

说明:% 是为了取个位数 , // 是为了将十位数降到个位,为下次循环取值
如: for中当前数i为153
tmp进while循环时,为153; sum = 0
while循环:
第一次,tmp = 153 为真,进入循环
153 % 10 = 3
3 ** 3= 27
0 + 27 = 27
sum = 27
153 // 10 = 15
tmp = 15
第二次循环,tmp = 15 为真,进入循环,此时sum = 27
与第一次操作相同
依次类推
第三次循环, tmp = 1 为真,进入循环,此时sum = 125 + 27 = 152
第四次循环,tmp = 0 为假 , 退出while循环,此时 sum = 152 + 1 = 153

判断 i 与 sum是否相等,若相等则为水仙花数,则打印其值
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2016-6-10 15:27:46 | 显示全部楼层
码农青菜 发表于 2016-6-10 14:45
举个例子你就晓得了,for循环是遍历100到1000的数,while循环是用来判断for中当前的数是否为水仙花数的!
...

你举个例子并说明,就看明白了,谢谢了~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-11 11:18:30 | 显示全部楼层
当时这道题我也不会做。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-21 07:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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