水仙花数的问题
我想问问我自己写的这个为什么会出现两个371大佬们教我一下,谢谢了
for i in range(100,1000,1):
while i == int(i/100)**3 + int((i%100)/10)**3 + int((i%100)%10)**3:
print(i)
i +=1
根本没必要加 while 循环,for 循环就够了。
for i in range(100, 1000, 1):
if i == int(i / 100) ** 3 + int((i % 100) / 10) ** 3 + int((i % 100) % 10) ** 3:
print(i) 本帖最后由 EthanHsiung 于 2020-2-8 17:52 编辑
有了for循环干嘛还要i+=1?也不需要while 我刚试了一下 把while 换成if 就好了 这是为什么呢?是有个个循环重复了一次吗?
本帖最后由 233倔强不秃 于 2020-2-8 18:19 编辑
我个人认为比较好的方法是
sum = 0
for i in range(100,1000):
temp = i
while temp:
sum = (temp%10)**3+sum
temp = temp//10
if sum==i
print(i)
页:
[1]