Converti un numero ternario, rappresentato come stringa (ad esempio '102012'), nel suo equivalente decimale, partendo dai principi di base.
Il programma deve considerare le stringhe che specificano un ternario non valido come il valore 0.
I numeri ternari contengono tre simboli: 0, 1 e 2.
L'ultima posizione in un numero ternario è quella dell'1. La penultima è quella del 3, la terzultima è quella del 9, e così via.
# "102012"
1 0 2 0 1 2 # the number
1*3^5 + 0*3^4 + 2*3^3 + 0*3^2 + 1*3^1 + 2*3^0 # the value
243 + 0 + 54 + 0 + 3 + 2 = 302
Se il linguaggio che usi fornisce un metodo nella libreria standard per eseguire la conversione, fai finta che non esista e implementa la conversione da solo.
Iscriviti a Exercism per imparare e padroneggiare Common Lisp con 27 concetti92 esercizi e il mentoring di persone reali, tutto gratis.