再帰を使用して数値の階乗を計算する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); }を返します
-
C++の数値の階乗の最初の桁
このチュートリアルでは、階乗の最初の桁を見つけるプログラムを作成します。例を見てみましょう。 入力 − 7 出力 − 5 問題を解決するための手順を見てみましょう。 番号を初期化します 数の階乗を見つけます。 1桁になるまで数値を割ります。 例 コードを見てみましょう。 #include <bits/stdc++.h> using namespace std; void findFirstDigitOfFactorial(int n) { long long int fact = 1; for (
-
ツリーのサイズを計算するプログラムを作成する-C++での再帰
この問題では、ツリーが与えられ、再帰を使用してツリーのサイズを計算するプログラムを作成することがタスクです。 ツリーのサイズは、ツリーに存在するノードの総数です。 問題を理解するために例を見てみましょう 上記の木のサイズは5です。 ツリーのサイズを見つけるには、左のサブツリーと右のサブツリーのサイズを追加してから、1ずつインクリメントする必要があります。再帰関数は、ツリーの左と右の両方のサブツリーに対して呼び出されます。また、サブツリーが見つからない場合は0を返します。 この方法を使用して解決された上記の例 木のサイズを見つけるには、 size(3)=size(5)+