Exercice 85
1) -Créer une fonction en langage Python nommée list_digits(n) qui prends en entrée un entier n et retourne la liste des chiffres de n en partant de la droite vers la gauche sans utiliser la fonction str(). Exemple: si n = 3752 , la fonction renvoie la liste [2, 5, 7, 3].
2) - En déduire une fonction sommes_positions(n) qui calcule la somme des chiffres aux positions paires (en partant de la droite) et la somme des chiffres aux positions impaires. Pour n = 12345, positions impaires (1,3,5) = 9, positions paires (2,4) = 6.
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 |
def list_digits(n): # Liste qui va contenir les chiffres extraits digits = [] # Cas particulier : si n = 0, son seul chiffre est 0 if n == 0: return [0] # Tant que n n'est pas nul while n > 0: # n % 10 donne le dernier chiffre (le chiffre le plus à droite) digits.append(n % 10) # n // 10 supprime le dernier chiffre n //= 10 # Les chiffres sont déjà dans l'ordre demandé : # de la droite vers la gauche return digits # Exemple n = 3752 print("List Digits of n = ", list_digits(n)) # output : List Digits of n = [2, 5, 7, 3] print('---------------------------------') def sommes_positions(n): # On utilise la fonction précédente (dédution demandée) digits = list_digits(n) # Initialisation des sommes somme_impaires = 0 # positions 1, 3, 5, ... somme_paires = 0 # positions 2, 4, 6, ... # Parcours des chiffres for i in range(len(digits)): # i commence à 0, donc la position réelle est i + 1 if (i + 1) % 2 == 1: # Position impaire somme_impaires += digits[i] else: # Position paire somme_paires += digits[i] return somme_impaires, somme_paires # Exemple m = 325416 print(sommes_positions(m)) |
Younes Derfoufi
CRMEF OUJDA



