Heim >Backend-Entwicklung >C++ >Wie können wir die Fakultät beliebig großer Zahlen berechnen und alle Ziffern ohne externe Bibliotheken anzeigen?

Wie können wir die Fakultät beliebig großer Zahlen berechnen und alle Ziffern ohne externe Bibliotheken anzeigen?

Susan Sarandon
Susan SarandonOriginal
2024-11-29 12:15:13880Durchsuche

How Can We Calculate the Factorial of Arbitrarily Large Numbers and Display All Digits Without External Libraries?

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

  • Das arr-Array stellt die Fakultät dar.
  • factorial() Multipliziert die Fakultät schrittweise mit der aktuellen Zahl.
  • display() stellt sicher, dass führende Nullen vorhanden sind weggelassen.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn