Exercice 83
On considère un nombre entier positif n. Écrire une fonction nommée difference_parite(n) qui détermine la différence entre la somme de ses chiffres pairs et la somme de ses chiffres impairs.
Exemple: pour n = 1234, on effectue la somme des chiffres pairs d’un côté et la somme des chiffres impairs de l’autre, puis on calcule la différence entre ces deux sommes. On vous demande de résoudre ce problème en proposant deux approches différentes :
- une approche utilisant la fonction Python str(),
- une autre approche ne faisant pas appel à cette fonction.
Solution
Méthode 1 : Avec la fonction str()
|
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 |
# Cette fonction calcule la différence entre : # la somme des chiffres pairs et la somme des chiffres impairs # en utilisant la conversion du nombre en chaîne de caractères def difference_parite(n): # Initialisation de la somme des chiffres pairs somme_pairs = 0 # Initialisation de la somme des chiffres impairs somme_impairs = 0 # Parcours de chaque caractère représentant un chiffre du nombre for c in str(n): # Conversion du caractère en entier chiffre = int(c) # Test si le chiffre est pair if chiffre % 2 == 0: # Ajout du chiffre à la somme des chiffres pairs somme_pairs += chiffre else: # Ajout du chiffre à la somme des chiffres impairs somme_impairs += chiffre # Calcul et retour de la différence : somme des pairs - somme des impairs return somme_pairs - somme_impairs # Appel de la fonction avec n = 1234 # Calcul effectué : (2 + 4) - (1 + 3) # Résultat attendu : 2 print(difference_parite(1234)) |
Méthode 2 : Sans utiliser str() (méthode arithmétique)
|
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 |
# Cette fonction calcule la différence entre : # la somme des chiffres pairs et la somme des chiffres impairs # en extrayant les chiffres avec les opérations % et // def difference_parite(n): # Initialisation de la somme des chiffres pairs somme_pairs = 0 # Initialisation de la somme des chiffres impairs somme_impairs = 0 # Tant que le nombre n n'est pas nul while n != 0: # Extraction du dernier chiffre du nombre chiffre = n % 10 # Test si le chiffre est pair if chiffre % 2 == 0: # Ajout du chiffre à la somme des chiffres pairs somme_pairs += chiffre else: # Ajout du chiffre à la somme des chiffres impairs somme_impairs += chiffre # Suppression du dernier chiffre du nombre n //= 10 # Calcul et retour de la différence : somme des pairs - somme des impairs return somme_pairs - somme_impairs # Appel de la fonction avec n = 1234 # Calcul effectué : (2 + 4) - (1 + 3) # Résultat attendu : 2 print(difference_parite(1234)) |
Younes Derfoufi
CRMEF OUJDA



