Day 213再帰関数で階乗を計算
Pythonコード
1def factorial(n):2 if n == 0:3 return 14 else:5 return n * factorial(n-1)6 7try:8 num = int(input('階乗を計算したい数を入力してください:'))9 if num < 0:10 print('負の数の階乗は計算できません。')11 else:12 print(f'{num}の階乗は{factorial(num)}です。')13except ValueError:14 print('数値以外の入力は受け付けられません。')
解説
- 行1〜5: 再帰関数factorial(n)を定義します。ここでは、nが0のときは1を返し、それ以外の場合はnにn-1の階乗を掛けた値を返します。つまり、n * (n-1) * (n-2) * ... * 1となります。int()は文字列を整数に変換する関数です。
- 行7〜9: ユーザーに数値を入力してもらいます。input()で入力を受け付け、int()で数値に変換します。try/exceptで入力ミスを処理します。input()はユーザーから入力を受け付ける関数です。
- 行10〜12: 入力された数値が負の場合、階乗を計算できないためメッセージを表示します。そうでない場合、階乗を計算して結果を表示します。print()は画面に文字や値を表示する関数です。
- 行13〜14: 入力ミスを処理するために、ValueError例外を捕捉してメッセージを表示します。
次に試してみよう
- 負の数の階乗を計算する方法を調べてみましょう。
- 再帰関数を使用してフィボナッチ数列を計算してみましょう。
- ユーザーに複数の数値を入力してもらって、それぞれの階乗を計算してみましょう。