擅长:python、mysql、java
<p>一般来说,这是不可能的–<code>MPersistence</code>只会在</em>之前运行<em>,或在</em><code>MDR</code>之后运行<em>。至少需要修改<code>MDR</code>以跟踪迭代本身,这就产生了如何在两个函数之间安全地交换结果的问题。理想情况下,<code>MPersistence</code>应该通过独立计算数字乘法链来工作</p>
<p>为避免代码重复,请使用一个同时计算<em>数字根和持久性的函数;根据需要,提供方便的函数直接返回每个组件</p>
<pre class="lang-py prettyprint-override"><code>def mdrp(n: int):
"""
Compute the multiplicative persistence and digital root of ``n``
"""
if n < 10:
return 0, n
else:
persistence, digital_root = mdrp(prodDigits(n))
return persistence + 1, digital_root
def MDR(n):
return mdrp(n)[1]
def MPersistence(n):
return mdrp(n)[0]
</code></pre>