Pythonで再帰を使って偶数か奇数かを判定するプログラムの書き方
指定した数値が偶数か奇数かを再帰(リカージョン)を使って判定したい場合、再帰的なアプローチを活用できます。
再帰とは、大きな問題をより小さな部分問題に分割して計算し、それらの結果を組み合わせることで全体の解を導き出す手法です。本記事では、再帰を用いて偶数・奇数を判定するPythonプログラムを紹介します。
サンプルコード
以下に実際のコード例を示します。
def check_odd_even(my_num):
if (my_num < 2):
return (my_num % 2 == 0)
return (check_odd_even(my_num - 2))
my_number = int(input("判定する数値を入力してください:"))
if(check_odd_even(my_number)==True):
print("この数値は偶数です")
else:
print("この数値は奇数です")
実行結果
判定する数値を入力してください:48
この数値は偶数です
コードの解説
check_odd_evenという名前の関数を定義し、引数として数値を受け取ります。- 数値が2未満の場合は、その数を2で割った余りを計算し、0と一致するかどうかを返します。これが再帰の終了条件(ベースケース)となります。
- 数値が2以上の場合は、関数を再度呼び出し、引数として「元の数値から2を引いた値」を渡します。これにより、数値が段階的に減少していきます。
- 関数の外側では、ユーザーからの入力を
input()で受け取り、整数型に変換して変数に格納します。 - 関数を呼び出した結果が
Trueであれば偶数、そうでなければ奇数と判定されます。 - 最後に、判定結果が出力として表示されます。
このように、再帰を利用することでループ処理を書かずにシンプルなコードで偶数・奇数の判定を実現できます。ただし、非常に大きな数値を扱う場合は再帰呼び出しの回数が増え、スタックオーバーフローに注意が必要です。
-
Pythonプログラムで数の偶数の約数の合計を求める方法
この記事では、以下の問題文に対する解決策について詳しく解説します。 問題文:ある数が与えられたとき、その数のすべての偶数の約数(因子)の合計を求めて表示します。 アプローチ まず、与えられた数が奇数であるかどうかを確認します。奇数には偶数の約数が存在しないため、その場合は 0 を返します。 数が偶数である場合は、実際の計算に進みます。ここでのポイントは、20(つまり1)以外のすべての項を掛け合わせることで、偶数の約数の合計が得られるという点です。 偶数の約数からすべての奇数を取り除くために、20 に相当する「1」を無視します。この処理を行うことで、残るのは偶数の約数のみとなります。なお、2 は
-
Pythonで与えられた数値がフィボナッチ数かどうかを判定する方法
本記事では、与えられた数値がフィボナッチ数であるかどうかを判定する問題の解決策について解説します。 問題の定義 ある数値 n が与えられたとき、その数値がフィボナッチ数であるかどうかを判定します。 第 n 項のフィボナッチ数は、直前の2つのフィボナッチ数の和として定義されることは広く知られています。しかし、フィボナッチ数列には漸化式以外にも興味深い数学的性質があります。 フィボナッチ数の判定条件 ある数値 n がフィボナッチ数であるのは、「5×n² + 4」または「5×n² − 4」のいずれかが完全平方数であるとき、かつそのときに限る この性質を利用すれば、フィボナッチ数列を実際に生成しなくて