|
2鱼币
编程实现100~999之间的水仙花数,例如153 = 1^3 + 5^3 + 3^3就是水仙花数
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 = i 为什么不能去掉,即程序中只使用i,不用temp
首先,在range(100,1000)内随机取个 i 值,这时候 i 值是固定的,while循环里面进行循环操作的是被赋值的temp,一次次地板除的过程中是不断变化的,当while为false的时候,跳出循环,这时候输出的值是 i ,而不是temp,这个时候的temp是 i 值的百位数
所以,不能取消temp = i 这个赋值过程
第一次答题,有点乱,谅解(刚学编程两三天..)
|
最佳答案
查看完整内容
首先,在range(100,1000)内随机取个 i 值,这时候 i 值是固定的,while循环里面进行循环操作的是被赋值的temp,一次次地板除的过程中是不断变化的,当while为false的时候,跳出循环,这时候输出的值是 i ,而不是temp,这个时候的temp是 i 值的百位数
所以,不能取消temp = i 这个赋值过程
第一次答题,有点乱,谅解(刚学编程两三天..)
|