我需要在 python 中為方程 Tn=n∑k=1 =k (sum from k=1 to n) 撰寫尾遞回函式。我能夠寫出非尾遞回
def TN(n):
if n == 0:
return 0
return n TN(n-1)
我試過:
def TN(n):
if n==0:
return 0;
s=n TN(n-1)
return s
這算作第一個代碼的尾遞回函式嗎?如果不是怎么寫呢?
uj5u.com熱心網友回復:
對于尾遞回的函式,呼叫自身需要是它在 return 陳述句中所做的最后也是唯一的事情。對于您的特定情況,這可以通過傳遞您根據基本條件回傳的默認引數來實作:
def Tn(n,result=0):
if not n: return result
return Tn(n-1,result n)
請注意,Python 實際上并不支持尾遞回。這將作為常規遞回進行處理,即使它是尾遞回形式,也會受到最大遞回深度限制
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/371657.html
