|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
for i in range(100, 1000):
sum = 0
temp = i
while temp:
sum = sum + (temp%10) ** 3
temp //= 10
if sum == i:
print(i)
#上面的while咋样才能跳出这个循环啊,还有原理也没看懂,虽然我自己也弄了个水仙花数的代码,但我还是想知道这是啥原理
本帖最后由 jackz007 于 2020-2-25 18:41 编辑
- 假设 i = 578
- sum = 0
- temp = i = 578
- 这里进入 while temp 循环
- 【第1次循环】:
- sum = sum + (temp % 10) = 0 + (578 % 10) ** 3 = 8 ** 3
- temp = temp // 10 = 578 // 10 = 57
- 【第2次循环】:
- sum = sum + (temp % 10) = 8 ** 3 + (57 % 10) ** 3 = 8 ** 3 + 7 ** 3
- temp = temp // 10 = 57 // 10 = 5
- 【第3次循环】:
- sum = sum + (temp % 10) = 8 ** 3 +7 ** 3 + (5 % 10) ** 3 = 8 ** 3 + 7 ** 3 + 5 ** 3
- temp = temp // 10 = 5 // 10 = 0
- 至此,while temp 循环因 temp = 0 而终止,这时,sum = 8 ** 3 + 7 ** 3 + 5 ** 3
复制代码
|
|