擅长:python、mysql、java
<p>我想你错了<code>for j in range(j, x+1):</code><br/>
您应该将<code>j</code>替换为<code>i</code>。在</p>
<p>更简单的解决方案是:</p>
<pre><code>def locker_puzzle(x):
lockers = [False] * x
for i in range(1, x + 1):
for j in range(i, x + 1, i):
try:
lockers[j-1] = not lockers[j-1]
except IndexError as e:
print(i, j)
raise e
for i, locker in enumerate(lockers):
if locker:
print(i+1)
</code></pre>
<p>我就是这样解决的。在</p>