Par hasard je suis tombé sur un post Facebook où il était question de chiffres romains, ça m'a rappelé que j'avais vu un MPO par ici (qui date on est d'accord !!). En relisant vos propositions, j'ai trouvé amusante la version de @bernouilli92 pour initialiser la liste { 1000 900 500 400 100 90 50 40 10 9 5 4 1 } :
Voici ma proposition en Python (pour les
calculatrices actuelles comme la NUMWORKS) basée sur le même principe :
Code : Tout sélectionner
arabe = [j * i for j in [100,10,1] for i in [10,9,5,4]] + [1]
romain = 'M,CM,D,CD,C,XC,L,XL,X,IX,V,IV,I'.split(',')
def convertir(nb, s = ''):
for i, a in enumerate(arabe):
(res, nb) = divmod(nb, a)
s += romain[i] * res
return s
Voilà, je referme ce MPO vieux de 7 ans