Python
 Computer >> コンピューター >  >> プログラミング >> Python

再帰を使わずに数値の階乗を求めるPythonプログラム

再帰(リカージョン)を使用せずに数値の階乗を求めたい場合は、「while」ループを活用するのが効果的です。階乗とは、ある正の整数から1までのすべての整数を掛け合わせた値のことで、例えば7の階乗は「7 × 6 × 5 × 4 × 3 × 2 × 1 = 5040」となります。

サンプルコード

以下は、whileループを使って階乗を計算するプログラムの実装例です。

my_num = int(input("Enter a number :"))
my_factorial = 1
while(my_num>0):
    my_factorial = my_factorial*my_num
    my_num=my_num-1
print("The factorial of the number is : ")
print(my_factorial)

実行結果

上記のコードを実行すると、次のような出力が得られます。

Enter a number :7
The factorial of the number is :
5040

コードの解説

このプログラムの処理の流れは以下の通りです。

  • 入力の受け取り: input()関数を使い、ユーザーから数値を入力として受け取ります。int()で整数型に変換しています。
  • 変数の初期化: 階乗の計算結果を格納する変数に、初期値として1を代入します。
  • ループ条件の判定: whileループにより、入力された数値が0より大きいかどうかを毎回チェックします。
  • 掛け算の実行: 数値が0でない場合、現在の変数の値に入力数値を掛け合わせます。
  • 数値の減算: 計算後、入力数値を1つ減らして同じ変数に代入し直します。
  • 繰り返し処理: 数値が0になるまで、上記の掛け算と減算を繰り返します。
  • 結果の出力: ループが終了した時点で、最終的な階乗の値がコンソールに表示されます。

このように、再帰関数を定義しなくても、シンプルなwhileループだけで階乗を効率的に求めることができます。再帰に比べてスタックオーバーフローの心配がなく、大きな数値に対しても安全に動作する点がメリットです。

  1. Pythonでリスト内の最小値を見つける方法を解説

    この記事では、リストの中から最小の数値を見つける方法について、具体的なサンプルコードとともに詳しく解説します。問題の概要問題: 数値のリストが与えられたとき、その中に含まれる最も小さい数値を画面に表示すること。この問題を解くアプローチは主に2つあります。ひとつは sort() メソッドを使ってリストを昇順に並べ替え、先頭の要素(インデックス0)を取得する方法。もうひとつは、Pythonに標準で用意されている組み込み関数 min() を使う方法です。それぞれ順番に見ていきましょう。方法1:sort()メソッドで並べ替えて最小値を取得するまずはリストを昇順にソートし、先頭の要素を取り出す方法です。

  2. Pythonで再帰関数を使って階乗を計算する方法を解説

    ある数の階乗(Factorial)とは、1からその数までのすべての整数を掛け合わせた積のことです。たとえば、5の階乗は「5 × 4 × 3 × 2 × 1 = 120」となります。再帰関数(Recursive Function)とは、自分自身を呼び出す関数のことを指します。この仕組みを使うと、階乗のように同じ処理を繰り返し行う計算を、シンプルで読みやすいコードで実装できます。再帰による階乗の計算例次のプログラムでは、factorial() 関数が引数を1つ受け取り、値を1ずつ減らしながら自分自身を呼び出します。そして引数が1に達した時点で呼び出しを終了し、結果を順番に掛け合わせて返します。de