到目前为止,这是我的代码
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
复制相似问题