|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
问题:
编写一个程序,求 100~999 之间的所有水仙花数。
如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数。
for i in range(100, 1000):
sum = 0
temp = i
while temp:
sum = sum + (temp%10) ** 3
temp //= 10 # 注意这里要使用地板除哦~
if sum == i:
print(i)
设temp = 153
sum = sum + (temp % 10) ** 3 相当于把153 的个位 3 ** 3
sum = 0 + 3 ** 3 = 9
因为temp = 153 所以再地板除10 那么temp = 15
此时再进入whlie 的循环,
sum = sum + (15%10) ** 3
sum = 9 + 5 ** 3 = 134
此时temp = 15 地板除temp= 15 // 10 = 1
sum = sum + (1%10) ** 3
sum = 134 + 1 ** 3 = 135
咦?咋不对劲?
我算错了????
为啥不等于153 我好难,求大佬指点指点
sum = 0 + 3 ** 3 = 9
sum = 0 + 3 ** 3 = 27
|
|