下記の関数は共に24が返ってくるのはいいのですが、普通の再帰は終了条件でreturn 1で処理しているのに、なぜ1が返ってこないのか、わからないです。
末尾再帰の方は終了条件のaで返ってきているのに・・・・
階乗を普通の再帰で処理する
def fact(n): if n == 0: return 1 return n * fact(n - 1) fact(4)
階乗を末尾再帰で処理する
def fact(n, a = 1): if n == 0: return a return fact(n - 1, n * a) fact(4)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/11 02:46