Correction de l'épreuve 46
Sujet (PDF intégré)
Exercice 1
def compte_occurrences(x, tab):
nb = 0
for element in tab:
if element == x:
nb += 1
return nb
Exercice 2
pieces = [1, 2, 5, 10, 20, 50, 100, 200]
def rendu_monnaie(somme_due, somme_versee):
'''Renvoie la liste des pièces à rendre pour rendre la monnaie
lorsqu'on doit rendre somme_versee - somme_due'''
rendu = []
a_rendre = somme_versee - somme_due
i = len(pieces) - 1
while a_rendre > 0:
while pieces[i] > a_rendre:
i = i - 1
rendu.append(pieces[i])
a_rendre = a_rendre - pieces[i]
return rendu
En soit l'épreuve n'est pas très difficile, mais il y a un petit piège sur la question 2. En effet, il faut bien faire attention à ce que la liste des pièces soit triée dans l'ordre décroissant. Sinon, on ne peut pas rendre la monnaie de manière optimale.
Précédent | Suivant