Corso di Raku / Appendice 🆕 / Mettere tutto insieme / Mini-progetti misti / Exercises / Numeri romani
Soluzione: Numeri romani
Ecco una possibile soluzione del compito.
Codice
my @table =
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';
my $n = 1994;
my $roman = '';
for @table -> $pair {
while $n >= $pair.key {
$roman ~= $pair.value;
$n -= $pair.key;
}
}
say $roman;🦋 Trova il programma nel file roman-numerals.raku.
Output
MCMXCIVCommenti
La tabella elenca ogni simbolo in ordine di valore decrescente, comprese le forme sottrattive come
CM(900) eIV(4), così l’algoritmo non deve mai trattarle come casi speciali.Per ogni voce, il
whileaggiunge il simbolo e sottrae il suo valore tante volte quante ci sta, così i pezzi più grandi vengono consumati per primi.
Navigazione del corso
← Numeri romani | Una calcolatrice in notazione polacca inversa →