到目前为止,这是我的代码
x = 100000
while x < 100000:
y = x + 100000
z = (3*10000)-1/(10-3)
if y != z:
x += 1
else:
print(x)
中断
我知道答案应该是42857,但它给了我10000
发布于 2018-05-24 20:00:30
循环永远不会执行,因为x
的初始化错误。此外,z
是常数(不依赖于x
)
在您的代码中,它可能会打印100000
,因为缩进不完整,使得else
语句与while
匹配。由于没有发生break
,所以打印了x
的最后一个值。
最好做一个for
循环。这样做是可行的:
for x in range (1,100000):
y = x + 100000
z = x*10 + 1
if y == z//3:
print(x)
break
else:
# for loop completed without break
print("not found")
或者在一行中,使用next
和生成器理解:
result = next(x for x in range (1,100000) if x + 100000 == (x*10 + 1)//3)
在这两种情况下,结果确实是42857
https://stackoverflow.com/questions/50517094
复制相似问题