鱼C论坛

 找回密码
 立即注册
查看: 3042|回复: 7

[已解决]009课业中的水仙花问题

[复制链接]
发表于 2015-12-22 10:54:16 | 显示全部楼层 |阅读模式

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

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

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)

这个 sum = sum + (temp%10) ** 3
        temp //= 10         # 注意这里要使用地板除哦

temp%10 这个和temp//=10
这两个是什么意思
一定很简单吧  献丑啊
最佳答案
2015-12-23 15:27:14
athpython 发表于 2015-12-23 14:43
你这个我能理解 3楼的循环 还在理解中 sum

sum是将temp%10得到的个位数的三次方加上十位数的三次方加上百位数的三次方的和,比如temp= 123,
temp %10 得到3,3是123的个位数,然后3**3得到3的三次方,加给和sum,然后temp//10得到12,再循环temp%10得到2,2是123的十位数,然后2**3得到2的三次方,加给和sum,然后temp//10得到1再循环,temp%10得到1,1是123的百位数,然后1**3得到1的三次方加给和sum,temp//10等于0 ,循环退出。至此sum等于123的个位数,十位数和百位数的三次方相加。进入后面的判断,看是不是等于其本身
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-12-22 12:08:18 | 显示全部楼层
temp%10是除以10取temp的余数
temp//=10即temp=temp//10
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2015-12-22 13:41:07 | 显示全部楼层
第一个temp%10是得到temp的个位数,然后三次方,然后temp//10得到得到temp的百位和十位,再循环temp%10得到temp的十位数,以此类推
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-22 13:41:56 | 显示全部楼层
用这个更容易理解
def flower():
    for i in range(100,1000):
        ge = i % 10
        shi = i % 100 //10
        bai = i // 100
        if i == ge**3 + shi**3 + bai**3:
            print(i)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-23 14:43:31 | 显示全部楼层
farewellpoem 发表于 2015-12-22 13:41
用这个更容易理解
def flower():
    for i in range(100,1000):


你这个我能理解 3楼的循环 还在理解中 sum
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-23 15:27:14 | 显示全部楼层    本楼为最佳答案   
athpython 发表于 2015-12-23 14:43
你这个我能理解 3楼的循环 还在理解中 sum

sum是将temp%10得到的个位数的三次方加上十位数的三次方加上百位数的三次方的和,比如temp= 123,
temp %10 得到3,3是123的个位数,然后3**3得到3的三次方,加给和sum,然后temp//10得到12,再循环temp%10得到2,2是123的十位数,然后2**3得到2的三次方,加给和sum,然后temp//10得到1再循环,temp%10得到1,1是123的百位数,然后1**3得到1的三次方加给和sum,temp//10等于0 ,循环退出。至此sum等于123的个位数,十位数和百位数的三次方相加。进入后面的判断,看是不是等于其本身
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-23 16:38:39 | 显示全部楼层
farewellpoem 发表于 2015-12-23 15:27
sum是将temp%10得到的个位数的三次方加上十位数的三次方加上百位数的三次方的和,比如temp= 123,
temp  ...

:handshake多谢多谢 看样子我逻辑性太差了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-23 18:47:21 | 显示全部楼层
athpython 发表于 2015-12-23 16:38
多谢多谢 看样子我逻辑性太差了

不客气,互相学习,互相进步
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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