擅长:python、mysql、java
<p>问题在于:</p>
<pre><code>while X != 1:
resultList = [];
#etc
</code></pre>
<p>您正在使用循环的每次迭代重新创建列表。因此,它在最后只有一个值,即在最后一次迭代中唯一插入的值</p>
<p>把任务从循环中去掉,就像这样:</p>
<pre><code>resultList = [];
while X != 1:
#etc
</code></pre>
<p>…解决了问题</p>
<p>另外,请注意,您在这里所做的工作是不必要的:</p>
<pre><code> elif not X % 2:
X = X // 2
</code></pre>
<p>你不必重复和颠倒你原来的状态。您只需将其设为<code>else</code></p>
<pre><code>if X % 2:
X = 3 * X + 1
else:
X = X // 2
</code></pre>