計算顯示所有數字的任意大數的階乘
計算任意大數的階乘是一個經典的演算法問題。然而,如果我們需要答案的所有數字而不依賴外部庫,這會帶來獨特的挑戰。本文深入研究了一種有效解決這項挑戰的方法。
建議的解決方案
該解決方案圍繞使用整數數組來表示階乘並執行乘法為我們在手動求解時會這樣做。讓我們檢查一下實現此方法的程式碼:
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中文網其他相關文章!