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

再帰を使用して数値の階乗を計算するC++プログラム


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

例:7の階乗は5040です。

7! = 7 * 6 * 5 * 4 * 3 * 2 *1
7! = 5040

再帰を使用して数値の階乗を計算するコードを見てみましょう。

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

出力

Factorial of 5 is 120
Factorial of 3 is 6
Factorial of 7 is 5040

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

cout<<"Factorial of 5 is "<<fact(5)<<endl;
cout<<"Factorial of 3 is "<<fact(3)<<endl;
cout<<"Factorial of 7 is "<<fact(7)<<endl;

数値が0または1の場合、fact()は1を返します。数値がそれ以外の場合、fact()は値n-1を使用して自分自身を再帰的に呼び出します。 fact()は、それ自体を再帰的に呼び出すとともに、nを再帰的な呼び出しfact(n-1)で乗算します。これにより、が得られます。

n*(n-1)*(n-2)....3*2*1 or the factorial of n

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

int fact(int n) {
   if ((n==0)||(n==1))
   return 1;
   else
   return n*fact(n-1);
}
を返します
  1. C++の数値の階乗の最初の桁

    このチュートリアルでは、階乗の最初の桁を見つけるプログラムを作成します。例を見てみましょう。 入力 − 7 出力 − 5 問題を解決するための手順を見てみましょう。 番号を初期化します 数の階乗を見つけます。 1桁になるまで数値を割ります。 例 コードを見てみましょう。 #include <bits/stdc++.h> using namespace std; void findFirstDigitOfFactorial(int n) {    long long int fact = 1;    for (

  2. ツリーのサイズを計算するプログラムを作成する-C++での再帰

    この問題では、ツリーが与えられ、再帰を使用してツリーのサイズを計算するプログラムを作成することがタスクです。 ツリーのサイズは、ツリーに存在するノードの総数です。 問題を理解するために例を見てみましょう 上記の木のサイズは5です。 ツリーのサイズを見つけるには、左のサブツリーと右のサブツリーのサイズを追加してから、1ずつインクリメントする必要があります。再帰関数は、ツリーの左と右の両方のサブツリーに対して呼び出されます。また、サブツリーが見つからない場合は0を返します。 この方法を使用して解決された上記の例 木のサイズを見つけるには、 size(3)=size(5)+