Heim >Backend-Entwicklung >C++ >Wie können wir die Fakultät beliebig großer Zahlen ohne externe Bibliotheken berechnen und anzeigen?
Einführung:
In einem aktuellen Interview eine herausfordernde Frage entstand: die Berechnung der Fakultät einer beliebig großen Zahl bei gleichzeitiger Anzeige aller ihrer Ziffern. Während externe Bibliotheken wie GMP praktische Lösungen bieten, ist es wichtig, alternative Methoden für diese Aufgabe zu erkunden. Hier stellen wir einen Ansatz vor, der ein Array von Ganzzahlen verwendet, um die Fakultät darzustellen, ohne auf externe Bibliotheken angewiesen zu sein.
Methode:
Implementierung:
#include <iostream> #include <cstring> int max = 5000; // Display all non-zero digits of the array 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 of 'n' and store it in 'arr' 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:
Dieser Code verwendet ein Integer-Array 'arr' zur Darstellung der Fakultät. Die Funktion „factorial“ berechnet rekursiv die Fakultät und speichert sie in „arr“. Die Funktion „display“ gibt die Nicht-Null-Ziffern von „arr“ aus und stellt so die Lesbarkeit der Fakultät sicher.
Fazit:
Der vorgestellte Ansatz demonstriert eine Methode für Berechnen der Fakultät beliebig großer Zahlen ohne Verwendung externer Bibliotheken. Es verwendet eine Array-basierte Darstellung, um alle Ziffern der Fakultät zu erfassen und sie in ihrer vollen Pracht anzuzeigen. Diese Methode erfüllt nicht nur die Interviewanforderungen, sondern unterstreicht auch, wie wichtig es ist, die zugrunde liegenden Prinzipien der Zahlenmanipulation in der Programmierung zu verstehen.
Das obige ist der detaillierte Inhalt vonWie können wir die Fakultät beliebig großer Zahlen ohne externe Bibliotheken berechnen und anzeigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!