程序怎么跑不出结果来
编写一个程序,求 100~999 之间的所有水仙花数。如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数
1. for i in range(100, 1000):
2. sum = 0
3. temp = i
4. while temp:
5. sum = sum + (temp%10) ** 3
6. temp //= 10 # 注意这里要使用地板除哦~
7. if sum == i:
8. print(i)
我自己写的程序怎么跑不出结果来呀,程序卡住了,求大神指教:
for i in range(100,1000):
sum = 0
while True:
sum += (i % 10 )**3
i //= 10
if sum == i:
print(i)
本帖最后由 jackz007 于 2020-11-24 21:17 编辑
for i in range(100,1000):
sum = 0
while True: # 这里是死循环
sum += (i % 10 )**3
i //= 10 # i 不可以改变,因为后面还有用
if sum == i: # 这里还要用到 i 所以,前面不可以修改
print(i)
改为下面这样就可以了
for i in range(100,1000):
sum = 0
temp = i
while temp:
sum += (temp % 10 ) ** 3
temp //= 10
if sum == i:
print(i) for i in range(100,1000):
sum = 0
temp=i
while temp:#这里如果时true的话,直接死循环,出不来结果的 ,改成temp
#之所以循环内用temp而不用i,是因为temp在每次循环的时候值时变化的,而i要用于最后的判断,不能变
sum += (temp % 10 )**3
temp //= 10
if sum == i:
print(i) jackz007 发表于 2020-11-24 21:11
改为下面这样就可以了
老哥,这个是死循环吧{:10_245:}
页:
[1]