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

階乗を見つけるためのC++プログラム


非負の整数nの階乗は、n以下のすべての正の整数の積です。

例:5の階乗は120です。

5! = 5 * 4 * 3 * 2 *1
5! = 120

整数の階乗は、再帰プログラムまたは非再帰プログラムを使用して見つけることができます。これらの両方の例を以下に示します。

非再帰プログラムを使用した階乗

forループを使用して、数値の階乗を見つけることができます。これは、次のプログラムを使用して示されます-

#include <iostream>
using namespace std;
int main() {
   int n = 5, fact = 1, i;
   for(i=1; i<=n; i++)
   fact = fact * i;
   cout<<"Factorial of "<<n<<" is "<<fact;
   return 0;
}

出力

Factorial of 5 is 120

上記のプログラムでは、forループは1からnまで実行されます。ループの反復ごとに、ファクトにiが乗算されます。事実の最終的な値は、1からnまでのすべての数値の積です。これは、次のコードスニペットを使用して示されています。

for(i=1; i<=n; i++)
fact = fact * i;

再帰プログラムを使用した階乗

次のプログラムは、数値の階乗を見つけるための再帰プログラムを示しています。

#include <iostream>
using namespace std;
int fact(int n) {
   if ((n==0)||(n==1))
   return 1;
   else
   return n*fact(n-1);
}
int main() {
   int n = 5;
   cout<<"Factorial of "<<n<<" is "<<fact(n);
   return 0;
}

出力

Factorial of 5 is 120

上記のプログラムでは、関数fact()は再帰関数です。 main()関数は、階乗が必要な番号を使用してfact()を呼び出します。これは、次のコードスニペットによって示されます。

cout<<"Factorial of "<<n<<" is "<<fact(n);

数値が0または1の場合、fact()は1を返します。数値がそれ以外の場合、fact()は値n-1で再帰的に自身を呼び出します。

これは、次のコードスニペットを使用して示されています-

int fact(int n) {
   if ((n==0)||(n==1))
   return 1;
   else
   return n*fact(n-1);
}
を返します
  1. LCMを見つけるためのC++プログラム

    2つの数値の最小公倍数(LCM)は、両方の倍数である最小公倍数です。 例:15と9の2つの数字があるとします。 15 = 5 * 3 9 = 3 * 3 したがって、15と9のLCMは45です。 2つの数値のLCMを見つけるプログラムは次のとおりです- 例 #include <iostream> using namespace std; int main() {    int a=7, b=5, lcm;    if(a>b)    lcm = a;    else    

  2. GCDを見つけるためのC++プログラム

    2つの数値の最大公約数(GCD)は、両方を除算する最大の数値です。 例:45と27の2つの数字があるとします。 45 = 5 * 3 * 3 27 = 3 * 3 * 3 したがって、45と27のGCDは9です。 2つの数値のGCDを見つけるプログラムは次のとおりです。 例 #include <iostream> using namespace std; int gcd(int a, int b) {    if (b == 0)    return a;    return gcd(b, a % b); } int