Python (école d'ingénieur) · Chapitre 1 · Exercice
Conversion de nombres romains
Bases de Python, variables et types
Énoncé
Écrire une fonction romain_vers_entier(romain) qui convertit un nombre écrit en chiffres romains (I, V, X, L, C, D, M) en entier, et sa réciproque entier_vers_romain(n).
Corrigé
def romain_vers_entier(romain):
valeurs = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
total = 0
precedent = 0
for char in reversed(romain):
valeur = valeurs[char]
if valeur < precedent:
total -= valeur
else:
total += valeur
precedent = valeur
return total
def entier_vers_romain(n):
valeurs = [
(1000, 'M'), (900, 'CM'), (500, 'D'), (400, 'CD'),
(100, 'C'), (90, 'XC'), (50, 'L'), (40, 'XL'),
(10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I')
]
resultat = []
for valeur, symbole in valeurs:
while n >= valeur:
resultat.append(symbole)
n -= valeur
return ''.join(resultat)100 % gratuit
La suite du chapitre est sur Adloun
- 9 autres exercices corrigés dans ce chapitre, et 9 à chercher avec le tuteur
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.