擅长:python、mysql、java
<p>您所指的是一个称为<a href="https://oeis.org/A000217" rel="nofollow noreferrer">Triangular Numbers</a>的数字序列,它有一个计算第n个数字的等式:</p>
<pre>T(n) = n(n+1)/2</pre>
<p>使用二次公式可以将其转化为:</p>
^{pr2}$
<p>因此,您的代码将是:</p>
<pre><code>def stackHeight(nCups):
return ((8*nCups+1)**0.5-1) // 2
</code></pre>
<p>和测试:</p>
<pre><code>>>> def stackHeight(nCups):
... return ((8*nCups+1)**0.5-1)//2
...
>>> stackHeight(7)
3.0
>>> stackHeight(3)
2.0
>>> stackHeight(12)
4.0
</code></pre>