Berechnung der Fakultät beliebig großer Zahlen mit allen angezeigten Ziffern
Die Berechnung der Fakultät beliebig großer Zahlen ist ein klassisches Algorithmusproblem. Es stellt jedoch eine einzigartige Herausforderung dar, wenn wir alle Ziffern der Antwort benötigen, ohne auf externe Bibliotheken angewiesen zu sein. Dieser Artikel befasst sich mit einer Methode, die diese Herausforderung effektiv bewältigt.
Die vorgeschlagene Lösung
Die Lösung besteht darin, ein Array von ganzen Zahlen zur Darstellung der Fakultät zu verwenden und eine Multiplikation durchzuführen das würden wir beim manuellen Lösen tun. Sehen wir uns den Code an, der diesen Ansatz implementiert:
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; }
Erklärung
Diese Lösung bietet einen umfassenden Ansatz zur Berechnung der Fakultät großer Zahlen ohne Verwendung externer Bibliotheken und stellt sicher, dass alle Ziffern des Ergebnisses angezeigt werden.
Das obige ist der detaillierte Inhalt vonWie können wir die Fakultät beliebig großer Zahlen berechnen und alle Ziffern ohne externe Bibliotheken anzeigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!