擅长:python、mysql、java
<p>如果要递归查找<code>7**x</code>:</p>
<pre><code>def max_siblings(depth, degree=7, total=1):
"""How many siblings maximum at the given *depth*."""
return max_siblings(depth-1, degree, total*degree) if depth else total
</code></pre>
<p>如果要递归查找<code>((7**(depth+1)) - 1) // 6</code>:</p>
<pre><code>def max_nodes(depth, degree=7, total=1):
return max_nodes(depth-1, degree, total+max_siblings(depth)) if depth else total
</code></pre>
<p>示例:</p>
<pre><code>for depth in range(5):
print(max_nodes(depth))
</code></pre>
<p>输出:</p>
<pre><code>1
8
57
400
2801
</code></pre>
<p>可以使用<a href="https://docs.python.org/3/library/functools.html#functools.lru_cache" rel="nofollow">^{<cd4>} decorator</a>缓存<code>max_siblings()</code>计算</p>