不行的,temp与i相等,用temp是为了避免污染i的值,你的第一个代码第6行,举个栗子,i= 134如果不用temp,那么i经过上面的计算后会变成0,我们要
判断的是是否等于原来的i,所以要创建一个值与i相等的变量来代替i计算这里稍微改了下程序,打印出了if语句前面的运算结果,发现i的值依次为13,1,0
那在if语句内,i都变成0了,那还怎么算
这代码可以自己试一下就明白了
i = 134
sum_ = 0
while i:
sum_ += (i%10)**3
i //= 10
print(i)
if sum_ == i:
print(i)
本帖最后由 jackz007 于 2021-3-25 23:23 编辑
i 在 while 循环中已经被改变,已经不可以通过 sum == i 来判断结果了
for i in range(100,999):
sum = 0
while i: # 如果 i 的值不为 0 那就循环
sum = sum + (i%10)**3
i //= 10 # i 的值在这里已经被改变
if sum == i: # 这里的 i 一定是 0 值,还怎么判断?
页:
[1]