すべての桁を表示した任意の大きな数値の階乗の計算
任意の大きな数値の階乗の計算は、古典的なアルゴリズムの問題です。ただし、外部ライブラリに依存せずに答えのすべての桁を必要とする場合、独特の課題が生じます。この記事では、この課題に効果的に対処する方法を詳しく掘り下げます。
提案された解決策
この解決策は、整数の配列を使用して階乗を表し、次のように乗算を実行することを中心に展開します。手動で解決する場合はそうします。このアプローチを実装するコードを調べてみましょう。
int max = 5000; // Display the factorial void display(int arr[]) { int ctr = 0; for (int i = 0; i < max; i++) { if (!ctr && arr[i]) ctr = 1; if (ctr) std::cout << arr[i]; } } // Calculate the factorial void factorial(int arr[], int n) { if (!n) return; int carry = 0; for (int i = max - 1; i >= 0; --i) { arr[i] = (arr[i] * n) + carry; carry = arr[i] / 10; arr[i] %= 10; } factorial(arr, n - 1); } int main() { int *arr = new int[max]; std::memset(arr, 0, max * sizeof(int)); arr[max - 1] = 1; int num; std::cout << "Enter the number: "; std::cin >> num; std::cout << "factorial of " << num << "is :\n"; factorial(arr, num); display(arr); delete[] arr; return 0; }
説明
このソリューションは、外部ライブラリを使用せずに大きな数値の階乗を計算するための包括的なアプローチを提供し、結果のすべての桁が表示されるようにします。
以上が外部ライブラリを使用せずに、任意に大きな数値の階乗を計算し、すべての桁を表示するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。