Pythonで階乗を再帰計算
n! = n × (n−1)!を、0または1の基底条件まで繰り返します。
Pythonで階乗を再帰計算とは?
n! = n × (n−1)!を、0または1の基底条件まで繰り返します。
再帰関数でn!を計算します。
どのような場面で使う?
- アルゴリズムとデータ構造を理解する。
- 各ステップと境界ケースを確認する。
- 実行時間とメモリ使用量を比較する。
サンプルコード
main.py
def factorial(number):
if number < 0:
raise ValueError("Factorial is undefined for negative numbers")
if number <= 1:
return 1
return number * factorial(number - 1)
print(factorial(6))
期待される出力
720
仕組み
各呼び出しでnを減らすため、時間とコールスタック深度はO(n)です。
値を変更し、PythonをインストールせずにCodeUtilityオンラインPythonコンパイラで実行できます。
練習問題
入力値と境界ケースを変更し、より大きなデータでも動作を確認してください。
- 空入力、1要素、重複値を試す。
- 各ステップの状態を表示する。
- 別の解法と性能を比較する。