Prépa Code Connexion Inscription

Exercices de programmation pour classes préparatoires

← Retour aux exercices

Découpe de barre

python ★★★☆☆

Un forgeron dispose d'une barre de métal de longueur longueur (entier). Il peut la découper en morceaux plus petits pour les vendre. Le prix de vente dépend de la taille du morceau : la liste prix donne les prix, où prix[0] est le prix d'un morceau de longueur 1, prix[1] celui d'un morceau de longueur 2, etc.

Écrire une fonction decoupe_barre(prix, longueur) qui renvoie le revenu maximal que le forgeron peut obtenir en découpant (ou non) sa barre.

Exemple détaillé : avec prix = [1, 5, 8, 9, 10, 17, 17, 20] et une barre de longueur 8 : - Vendre la barre entière (longueur 8) rapporte prix[7] = 20 - La couper en deux morceaux de 2 et 6 rapporte prix[1] + prix[5] = 5 + 17 = 22 - La couper en 8 morceaux de 1 rapporte 8 × prix[0] = 8 × 1 = 8

La meilleure option est 2+6 pour un revenu de 22.

Exemples

AppelRésultat attendu
decoupe_barre([1, 5, 8, 9, 10, 17, 17, 20], 8) 22
decoupe_barre([3, 5, 8], 3) 9

Votre code

Connectez-vous pour soumettre du code.