Maison > développement back-end > C++ > Programme C/C++ pour calculer le nombre de zéros à droite dans la factorielle d'un nombre

Programme C/C++ pour calculer le nombre de zéros à droite dans la factorielle d'un nombre

WBOY
Libérer: 2023-08-29 12:29:05
avant
1491 Les gens l'ont consulté

Ici, nous allons apprendre à calculer le nombre de 0 à droite dans le résultat factoriel de n'importe quel nombre. Donc si n = 5, alors 5 ! =120. Il n’y a qu’un seul 0 final. Pour 20 !, ce serait 4 zéros comme 20 = 2432902008176640000.

Le moyen le plus simple est de calculer la factorielle et de calculer 0. Mais pour des valeurs de n plus grandes, cette approche échoue. Nous allons donc adopter une autre approche. Si les facteurs premiers sont 2 et 5, des zéros à droite apparaîtront. Si on calcule 2 et 5, on obtient le résultat. Pour ce faire, nous suivrons cette règle.

TrailingZeros(n) = comptage de 5 en facteurs premiers factoriels (n)

Programme C/C++ pour calculer le nombre de zéros à droite dans la factorielle dun nombre

Algorithme

countTrailingZeros(n)

begin
   count := 0
   for i := 5, (n/i) >= 1, increase i := i * 5, do
      count := count + (n / i)
   done
   return count;
end
Copier après la connexion

Exemple

La traduction chinoise est

Example

#include <iostream>
#include <cmath>
#define MAX 20
using namespace std;
int countTrailingZeros(int n) {
   int count = 0;
   for (int i = 5; n / i >= 1; i *= 5)
      count += n / i;
   return count;
}
main() {
   int n = 20;
   cout << "Number of trailing zeros: " << countTrailingZeros(n);
}
Copier après la connexion

Output

Number of trailing zeros: 4
Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal