Pythonのfactorial()
数値の階乗を見つけることは、Pythonを含むデータ分析やその他の数学的分析で頻繁に必要とされます。階乗は、1から指定された数までのすべての整数を乗算することにより、常に正の整数に対して検出されます。以下に示すように、これを見つけるには3つのアプローチがあります。
Forループの使用
forループを使用して、指定された数まで1番を繰り返し、各ステップで乗算を続けることができます。以下のプログラムでは、ループで使用する前に、数値を入力して入力を整数に変換するようにユーザーに求めています。このようにして、計算で正の整数を確実に取得します。
例
n = input("Enter a number: ") factorial = 1 if int(n) >= 1: for i in range (1,int(n)+1): factorial = factorial * i print("Factorail of ",n , " is : ",factorial)
出力
上記のコードを実行すると、次の結果が得られます-
Enter a number: 5 Factorail of 5 is : 120
再帰の使用
例
num = input("Enter a number: ") def recur_factorial(n): if n == 1: return n elif n < 1: return ("NA") else: return n*recur_factorial(n-1) print (recur_factorial(int(num)))
出力
上記のコードを実行すると、次の結果が得られます-
#Run1: Enter a number: 5 120 #Run2: Enter a number: -2 NA
math.factorial()の使用
この場合、数学モジュールで利用可能な階乗関数を直接使用できます。階乗機能のコードを記述する必要はなく、math.factorial()を直接使用します。これにより、負の数と小数のシナリオも処理されます。
例
import math num = input("Enter a number: ") print("The factorial of ", num, " is : ") print(math.factorial(int(num)))
出力
上記のコードを実行すると、次の結果が得られます-
#Run1: Enter a number: 5 The factorial of 5 is : 120 #Run 2: Enter a number: 3.6 Traceback (most recent call last): The factorial of 3.6 is : File "C:/Users....py", line 5, in print(math.factorial(int(num))) ValueError: invalid literal for int() with base 10: '3.6'
-
数の階乗のためのPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 −nの階乗を計算するタスク。 非負数の階乗は-で与えられます n! = n*n-1*n-2*n-3*n-4*.................*3*2*1 この問題には2つの解決策があります 再帰的アプローチ 反復的なアプローチ アプローチ1-再帰的アプローチ 例 def factorial(n): # recursive solution if (n==1 or n==0): return 1 &
-
Pythonを使用して数値の階乗を見つける方法は?
数値の階乗は、1とそれ自体の間のすべての整数の積です。与えられた数の階乗を見つけるために、1からそれ自体までの範囲でforループを形成しましょう。 range()関数は停止値を除外することに注意してください。したがって、停止値は入力数より1大きい値にする必要があります。 範囲内の各数値は、1に初期化される変数fで累積的に乗算されます 例 num=int(input('enter a number')) f=1 for i in range(1,num+1): f=f*i print ('factorial of', num, '='