擅长:python、mysql、java
<p>多亏了@interjay的建议,我想出了一个完美的答案:</p>
<pre><code>import math
def sqpent(n):
counter = 0
i = 0
l = []
while counter < n:
x = (i*(3*i-1)//2)
#print(x)
if(int(math.sqrt(x))**2 == x):
#print("APPENDED: " + str(x))
l.append(x)
counter += 1
i += 1
return l
</code></pre>
<p>解释如下:</p>
<ul>
<li>它遍历一个值i,得到第i个五边形数。然后它检查它是否是一个正方形,如果是,它会将它附加到我最终返回的列表中。你知道吗</li>
<li>它会一直这样做,直到计数器达到所需列表中的项目数为止。你知道吗</li>
</ul>