Compter le nombre de zéro à la fin d'un nombre
Résolu/Fermé
SanAntonio94
-
Modifié le 6 avril 2021 à 12:57
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 6 avril 2021 à 15:08
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 6 avril 2021 à 15:08
A voir également:
- Compter le nombre de zéro à la fin d'un nombre
- Remettre a zero un pc - Guide
- Nombre facile - Télécharger - Outils professionnels
- Afficher zero devant nombre excel - Guide
- Créer un compte google - Guide
- Créer un compte gmail - Guide
3 réponses
yg_be
Messages postés
23416
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 janvier 2025
Ambassadeur
1 557
6 avril 2021 à 10:52
6 avril 2021 à 10:52
bonjour,
1) utilise les balises de code quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
2) ajoute des print() dans ton code, afin de comprendre ce qu'il fait.
1) utilise les balises de code quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
2) ajoute des print() dans ton code, afin de comprendre ce qu'il fait.
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
6 avril 2021 à 13:03
6 avril 2021 à 13:03
Bonjour,
Comme le dit yg_be, l'opérateur
Note que la fonction factorielle est disponible de base en python :
Une approche peu élégante mais qui marche consiste à transformer le résultat de
Bonne chance
Comme le dit yg_be, l'opérateur
/ne calcule pas une division entière en python3 (contrairement à python2), donc je suppose que tu voulais utiliser l'opérateur
//.
Note que la fonction factorielle est disponible de base en python :
from math import factorial print(factorial(23))
Une approche peu élégante mais qui marche consiste à transformer le résultat de
facto(n)sous forme de chaine, de récupérer sa longueur, puis de supprimer tous les 0 à droite de cette chaîne (e.g. avec la méthode
rstrip)
s = str(facto(23)) print(len(s) - len(s.rstrip("0")))
Bonne chance
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
>
SanAntonio94
6 avril 2021 à 15:08
6 avril 2021 à 15:08
De rien, bonne continuation !
J'ai trouvé une piste et est modifié en fonction mais toujours la même erreur à 23...
def facto(n):
if n==0:
return 1
else:
return n*facto(n-1)
def zero(n):
nbre=facto(n)
zero=0
while nbre>0:
if nbre%10==0:
zero=zero+1
nbre=nbre/10
else:
break
return(zero)
yg_be
Messages postés
23416
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 janvier 2025
1 557
6 avril 2021 à 12:20
6 avril 2021 à 12:20
cela s'éméliore, en effet.
as-tu ajouté des print() pour comprendre ce qui se passait?
connais-tu l'opérateur de division entière en python?
as-tu ajouté des print() pour comprendre ce qui se passait?
connais-tu l'opérateur de division entière en python?