ioCode
Rendu de monnaie
Gloutons • Exercices 1A
- Écrire une fonction1IndiceItérer sur la liste des pièces en utilisant la division entière et le modulo pour compter les éléments.
nb_ccp(m: int, P: list[int]) -> int | Nonequi calcule le nombre de pièces nécessaires pour rendre le montantmà partir de la liste des piècesPtriée par ordre décroissant. Par exemplenb_ccp(150, [100, 25])renvoie3. - Écrire une fonction2IndiceModifier légèrement le code précédent en utilisant une liste vide à laquelle on ajoute des tuples
(n,p)à chaque itération.ccp(m: int, P: list[int]) -> list[tuple[int, int]] | Nonequi renvoie la liste des couples(nombre, pièce)correspondant aux pièces utilisées pour rendre le montantm. S'il n'y pas de solution, la fonction renvoie une liste vide. Par exempleccp(150, [100, 25])renvoie[(1, 100), (2, 25)]. - Écrire une fonction3IndiceDéfinir les cas de base (conditions d'arrêt), puis appeler la fonction récursivement avec le montant réduit et la liste tronquée. Utiliser le tranchage de liste
L[start:stop]et la concaténation de listes+.rec_ccp(m: int, P: list[int]) -> list[tuple[int, int]]qui calcule la composition du rendu en implémentant l'algorithme glouton de manière récursive. Par exemplerec_ccp(150, [100, 25])renvoie[(1, 100), (2, 25)].
Langage
Console initialisée. En attente de l'interpréteur...