Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
Exercice
Additions Romaines
Écrivez une fonction d'ajout de deux nombres romains en utilisant le projet https://github.com/vincent314/kotlin-training et les tests unitaires fournis.
⚠ Vous ne devez jamais convertir les nombres en décimal !
Utilisez les algorithmes très simples (ex. chercher / remplacer), et limitez vous au milliers.
Exemples
sum("X","XI") == "XVI"sum("DCXCIV", "MMCCCLIV") == "MMMXLVIII"
Rappels
- 1 = I
- 4 = IV
- 5 = V
- 9 = IX
- 10 = X
- 40 = XL
- 50 = L
- 100 = C
- 400 = CD
- 500 = D
- 900 = CM
- 1000 = M
Étapes
Décompacter
Construisez d'abord une fonction unpack pour décompacter les nombres : écrire de façon naïve les formes soustractives.
unpack("XIX") == "XVIIII"unpack("XXIV") == "XXIIII"
Concaténer et trier
Construisez une fonction merge pour concaténer et trier les caractères.
merge("XVIIII", "XXIIII") == "XXXVIIIIIIII""
Regrouper
Construisez une fonction group pour regrouper les "tas" en partant de la droite (les plus petits).
group("XXXVIIIIIIII) == "XXXXIII"
Simplifier
Construisez une fonction simplify pour simplifiers les formes soustractives XL ou IV :
simplify("XXXXIII") == "XLIII"
Sommer
Composer les 4 méthodes précédentes dans une fonction sum
sum("XIX", "XXIV") == "XLIII"