蛇语十八讲第1题水仙花求纠错(感觉思路不同于甲鱼老师)
找所有水仙花数temp = ['0']
result = 0
t = 0
count = 0
while count < 1000:
while t < len(temp):
k = int(temp)
result += k**3
t+=1
l = list(temp)
m = l
if result==int(m):
print(int(m))
j = int(m)
j += 1
trans= str(j)
temp = list(trans)
count+=1
打算用int形式对数字增减,用List输出各个位数并三次方求和,再转化成int与int形式的数字比较,输出只有0,求指教
本帖最后由 thexiosi 于 2017-4-24 18:44 编辑
hi
代码中可能存在如下bug:
第八行 result += k**3,每一次循环,变量result的值总会累加(上一轮的循环值加入运算):第一轮循环 result=0 + 0**3 、第二轮循环 result =0 + 1**3 、第三轮循环 result = 1 + 2**3,第四轮循环 result = 9 + 3**3...,鉴于此,第12行 if result==int(m) ,除第一轮循环成立外,其余不会成立,因此只会打印 0 。
thexiosi 发表于 2017-4-24 18:31
hi
代码中可能存在如下bug:
是的,但是1.即便如此至少也会打印0和1吧~
2.我重新修改了一下把result = 0加在了每次循环开始,而且特地从2开始,但这次直接没有输出了
temp = '2'
t = 0
count = 0
while count < 1000:
result = 0
while t < len(temp):
k = int(temp)
result += k**3
t+=1
m = temp
if result==int(m):
print(int(m))
j = int(m)
j += 1
temp= str(j)
count+=1 473951841 发表于 2017-4-25 20:28
是的,但是1.即便如此至少也会打印0和1吧~
2.我重新修改了一下把result = 0加在了每次 ...
恩 你的分析比我更全面 我今天再试试
页:
[1]