鱼C论坛

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

[已解决]麻烦帮忙解读下,没看明白,多谢啦

[复制链接]
发表于 2017-7-18 18:37:24 | 显示全部楼层 |阅读模式

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

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

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)
最佳答案
2017-7-18 19:05:30
比如说153 = 1**3 + 5**3 + 3**3
sum = 3个位数的三次方相加的和
第一次求3**3:153求余  153%10 = 3  把3**3 = 27  sum += 27  sum = 27 然后把153地板除 153 // 10 = 15
第二次求5**3:  15求余  15%10 = 5  把5**3 = 125  sum += 125   sum = 152 然后 15 // 10 = 1
第三次求1**3:  1求余  1%10 = 1 得1**3 = 1  sum += 1  sum = 153  然后 1 // 10 = 0

退出 wihle循环

比较当前153和各位置三次方之和   相等 输出
1500374145(1).jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-18 19:05:02 | 显示全部楼层
以153为例
(temp%10) # 取余,得到数字(153%10得到个位数3,15%10得到十位数5,1%10得到百位数1)
sum = sum +(temp%10) ** 3  #求和
temp //= 10  #temp = temp // 10,整除temp =(153 //10)=15),temp =(15//10)=1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-18 19:05:30 | 显示全部楼层    本楼为最佳答案   
比如说153 = 1**3 + 5**3 + 3**3
sum = 3个位数的三次方相加的和
第一次求3**3:153求余  153%10 = 3  把3**3 = 27  sum += 27  sum = 27 然后把153地板除 153 // 10 = 15
第二次求5**3:  15求余  15%10 = 5  把5**3 = 125  sum += 125   sum = 152 然后 15 // 10 = 1
第三次求1**3:  1求余  1%10 = 1 得1**3 = 1  sum += 1  sum = 153  然后 1 // 10 = 0

退出 wihle循环

比较当前153和各位置三次方之和   相等 输出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-7-18 19:15:40 | 显示全部楼层
新手·ing 发表于 2017-7-18 19:05
比如说153 = 1**3 + 5**3 + 3**3
sum = 3个位数的三次方相加的和
第一次求3**3:153求余  153%10 = 3  把 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 02:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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