|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目来源:零基础学Python,第009讲,课后习题,动动手第1题。
原题:编写一个程序,求 100~999 之间的所有水仙花数。
如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数。
代码一:
sum = 0
for i in range(100,1000):
temp = i
while temp:
sum = sum + (temp%10)**3
temp //= 10
if sum == i:
print(i)
代码二:
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 = 0 从第一行改到第二行就好了,因为每次算完结果 sum的值没有重置,还在原来基础继续求和。 - for i in range(100,1000):
- sum = 0
- temp = i
- while temp:
- sum = sum + (temp%10)**3
- temp //= 10
- if sum == i:
- print(i)
复制代码
|
|