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

動的計画法を使用して数値の階乗を見つけるC++プログラム


正の整数nの階乗は、1 * 2 * 3 *...nに等しくなります。負の数の階乗は存在しません。ここでは、動的計画法を使用して特定の入力の階乗を見つけるためのC++プログラムが提供されています。

アルゴリズム

Begin
   fact(int n):
      Read the number n
      Initialize
      i = 1, result[1000] = {0}
      result[0] = 1
      for i = 1 to n
         result[i] = I * result[i-1]
   Print result
End

サンプルコード

#include <iostream>
using namespace std;
int result[1000] = {0};
int fact(int n) {
   if (n >= 0) {
      result[0] = 1;
      for (int i = 1; i <= n; ++i) {
         result[i] = i * result[i - 1];
      }
      return result[n];
   }
}
int main() {
   int n;
   while (1) {
      cout<<"Enter integer to compute factorial (enter 0 to exit): ";
      cin>>n;
      if (n == 0)
      break;
      cout<<fact(n)<<endl;
   }
   return 0;
}

出力

Enter integer to compute factorial (enter 0 to exit): 2
2
Enter integer to compute factorial (enter 0 to exit): 6
720
Enter integer to compute factorial (enter 0 to exit): 7
5040
Enter integer to compute factorial (enter 0 to exit): 10
3628800
Enter integer to compute factorial (enter 0 to exit): 0

  1. 再帰を使用して数値の階乗を見つけるJavaプログラム

    この記事では、再帰を使用して数値の階乗を見つける方法を理解します。数値の階乗は、それ自体とその小さい数値のそれぞれの積です。階乗は、ゼロより大きい自然数に適用される関数です。階乗関数の記号は、次のような数字の後の感嘆符です:5! 再帰関数は、特定の条件が満たされるまで、それ自体を複数回呼び出す関数です。再帰は、自己相似的な方法でアイテムを繰り返すプロセスです。プログラミング言語では、プログラムで同じ関数内の関数を呼び出すことができる場合、それは関数の再帰呼び出しと呼ばれます。 多くのプログラミング言語は、スタックを使用して再帰を実装します。一般に、関数(呼び出し元)が別の関数(呼び出し先)

  2. 数の階乗を見つけるJavaプログラム

    この記事では、数の階乗を見つける方法を理解します。数値の階乗は、それ自体とその小さい数値のそれぞれの積です。 階乗は、ゼロより大きい自然数に適用される関数です。階乗関数の記号は、次のような数字の後の感嘆符です:5! 以下は同じのデモンストレーションです- 入力 入力が-であると仮定します Enter the number : 5 出力 必要な出力は次のようになります。つまり、5です。 =5x4x3x2x1 The factorial of 5 is 120 アルゴリズム Step1- Start Step 2- Declare three integers: my_inpu