上級 › 再帰の終了条件が無いときの原因と直し方 › パターン4
再帰の終了条件が無いときの原因と直し方
再帰関数に終了条件(ベースケース)が無い、または正しく機能していないときに発生します。
1 def fibonacci(n): 2 ___________________ ^ 3 return fibonacci(n - 1) + fibonacci(n - 2) 4 5 print(fibonacci(5))
Traceback (most recent call last):
File "main.py", line 5, in <module>
print(fibonacci(5))
^^^^^^^^^^^^
File "main.py", line 3, in fibonacci
return fibonacci(n - 1) + fibonacci(n - 2)
^^^^^^^^^^^^^^^^
...(同じ行が何度も繰り返される)...
RecursionError: maximum recursion depth exceeded
空欄を埋めて実行を通す
フィボナッチ数列の再帰でも同じです。小さいnで止める条件が無いと、マイナス方向にどこまでも呼び出しが続きます。
次の問題