遞歸
遞歸思路:
1. 找出兩次調(diào)用的關(guān)系 阴挣,
2. 找出臨界線(退出遞歸的條件)
3. 算出本次遞歸結(jié)果徘意,并返回這個(gè)結(jié)果
f(n):
n*f(n-1)
n*f(n-1)*f(n-2)….f(1)
? ? ? f(5): 階乘
5×4×3×2×1历涝,臨界線1
解決遞歸的次數(shù)限制的方式: 尾遞歸
注意:Python環(huán)境中,棧有最大深度限制,可以借助于generator生成器解決稽莉,
請查看導(dǎo)圖的階乘中的“尾遞歸”部分邀跃。
尾遞歸: 只返回函數(shù)本身,不包含表達(dá)式小槐,可以本次計(jì)算的結(jié)果存放函數(shù)的參數(shù)中
math.factorial(n)? 計(jì)算n的階乘