Exercice 27
Moyenne des chiffres en Python : Créer un algorithme en Python sous forme de fonction moyenne_chiffres(n) qui prend en entrée un entier n et retourne la moyenne arithmétique des chiffres du nombre n. Exemple : pour n = 456, la moyenne est (4+5+6)/3 = 5.0. (On doit envisager deux méthodes différentes, l'une en utilisant la fonction str(), l'autre sans utiliser cette dernière)
Solution
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# MÉTHODE 1 : Moyenne des chiffres avec la fonction str() def moyenne_chiffres_str(n): # Convertir le nombre en chaîne de caractères chaine = str(n) # Initialiser la somme somme = 0 # Parcourir chaque caractère de la chaîne for c in chaine: # Convertir le caractère en entier et l'ajouter à la somme somme += int(c) # Retourner la moyenne return somme / len(chaine) # MÉTHODE 2 : Moyenne des chiffres sans utiliser str() (purement mathématique) def moyenne_chiffres_math(n): # Cas particulier : n = 0 if n == 0: return 0.0 # Initialiser la somme et le compteur somme = 0 nb_chiffres = 0 # Extraire chaque chiffre par division euclidienne while n > 0: # Le dernier chiffre est le reste de la division par 10 dernier_chiffre = n % 10 somme += dernier_chiffre nb_chiffres += 1 # Supprimer le dernier chiffre du nombre n = n // 10 # Retourner la moyenne return somme / nb_chiffres # Exemple n = 456 resultat1 = moyenne_chiffres_str(n) print(f"moyenne_chiffres_str({n}) = {resultat1}") # output : moyenne_chiffres_str(456) = 5.0 resultat2 = moyenne_chiffres_math(n) print(f"moyenne_chiffres_math({n}) = {resultat2}") # output : moyenne_chiffres_math(456) = 5.0 |



