Exercice 24
1) - Créer une fonction list_digits(n) qui prends en entrée un entier positif n et renvoie la liste des chiffres qui le composent. Exemple: si n = 3257 la fonction renvoie la liste [7, 5, 2, 3]
2) - Déterminer une fonction Python sum_digits(n) qui prend en entrée un entier n et renvoie la somme des chiffres qui le composent. Exemple: si n = 238 la fonction renvoie 2+3+8 = 13
3) - Développer une fonction reduce_digits(n) qui calcule itérativement la somme des chiffres jusqu'à obtenir un seul chiffre. Exemple: pour n = 987 : 9+8+7=24, puis 2+4=6. La fonction retourne 6.
Solution
1) Fonction list_digits(n)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
def list_digits(n): # On crée une liste vide qui contiendra les chiffres digits = [] # Tant que n possède encore des chiffres while n > 0: # On récupère le dernier chiffre grâce au modulo 10 digits.append(n % 10) # On supprime le dernier chiffre en divisant par 10 (division entière) n //= 10 # On retourne la liste obtenue return digits |
2) Fonction sum_digits(n)
|
1 2 3 4 5 6 |
def sum_digits(n): # On récupère la liste des chiffres avec la fonction list_digits digits = list_digits(n) # On retourne la somme de tous les éléments de la liste return sum(digits) |
3) Fonction reduce_digits(n)
|
1 2 3 4 5 6 7 8 |
def reduce_digits(n): # Tant que le nombre possède plus d'un chiffre (>= 10) while n >= 10: # On remplace n par la somme de ses chiffres n = sum_digits(n) # Quand il ne reste qu’un seul chiffre, on le retourne return n |
Younes Derfoufi
CRMEF OUJDA



