Maison > Article > développement back-end > Comment pouvons-nous calculer la factorielle de nombres arbitrairement grands sans bibliothèques externes ?
Détermination de la factorielle des grands nombres
Le calcul des factorielles pose un défi lorsque les résultats dépassent les limites des types de données natifs. Cet article présente une technique de calcul de factorielles d'entiers arbitrairement grands, révélant tous les chiffres de la solution.
Simulation du calcul manuel
En l'absence de bibliothèques externes comme GMP , nous devons imiter le processus de calcul factoriel manuel en utilisant un tableau d'entiers. Ce tableau représente le grand nombre, chaque index contenant un chiffre.
Algorithme de calcul factoriel
Pour un nombre n, la factorielle est calculée comme suit :
Exemple d'implémentation
Le code C fourni implémente l'algorithme ci-dessus :
#include <iostream> #include <cstring> int max = 5000; 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]; } } 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; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!