求助:水仙花数问题
i = 100a = int(i / 100)
b = int(i / 10) - (int(i / 100) * 10)
c = int(i % 10)
while i <=999:
if i == a ** 3 + b ** 3 + c ** 3:
print(i)
i += 1
else:
i += 1
不知道哪里错了。。。 本帖最后由 LuLD 于 2020-9-14 16:39 编辑
你这是要求出 三位数的 水仙花数?
那你应该把
a = int(i / 100)
b = int(i / 10) - (int(i / 100) * 10)
c = int(i % 10)
放到 while 循环里面,
你这样写的 a b c 的值是固定的了
i = 100
while i <=999:
a = int(i / 100)
b = int(i / 10) - (int(i / 100) * 10)
c = int(i % 10)
if i == a ** 3 + b ** 3 + c ** 3:
print(i)
i += 1
else:
i += 1
本帖最后由 sunrise085 于 2020-9-14 16:35 编辑
应该把计算abc的那三行放在while循环里面
最后 if和else中都有i=i+1,那么这一句就不必放在if和else中了
i = 100
while i <=999:
a = int(i / 100)
b = int(i / 10) - (int(i / 100) * 10)
c = int(i % 10)
if i == a ** 3 + b ** 3 + c ** 3:
print(i)
i += 1 本帖最后由 coolliqing 于 2020-9-14 16:54 编辑
if i == a ** 3 + b ** 3 + c ** 3:
这一句:如果 i =a ** 3 + b ** 3 + c ** 3 ,可是i = 100,循环一次会加1,a,b,c的值却一直没有变化,所以永远不能为True,自然没有输出
该怎么改楼上已经有正解了{:5_109:}
coolliqing 发表于 2020-9-14 16:38
这一句:如果 i =a ** 3 + b ** 3 + c ** 3 ,可是i = 100,循环一次会加1,a,b,c的值却一直没有变化,所 ...
谢谢{:5_108:} sunrise085 发表于 2020-9-14 16:34
应该把计算abc的那三行放在while循环里面
最后 if和else中都有i=i+1,那么这一句就不必放在if和else中了
...
谢谢{:5_108:}
页:
[1]