Fase Territoriale 2001
Scrivete un programma che, dato un numero intero compreso tra 1 e 99 inclusi, scriva la parola italiana corrispondente.
Dati in input
Un numero compreso tra 1 e 99 inclusi.
Dati in output
Il programma deve fornire la parola corrispondente in italiano.
Assunzioni
- Qualora lo stesso numero possa essere espresso in più forme, scegliere sempre la più breve (per esempio, “ventuno” e non “ventiuno” o “ventieuno”, “ottantuno” e non “ottantauno” o “ottantaeuno”).
Nel caso precedente, scrivere “ventieuno” al posto di “ventuno” è considerato un errore.
Allo stesso modo, uno spazio nella parola è considerato un errore. - I caratteri accentati devono essere inseriti privi di accento (per esempio, “trentatre” e non “trentatrè” o “trentatre’”).
Esempi
| Input | Output | |
|---|---|---|
| 1° | 12 | dodici |
| 2° | 23 | ventitre |
| 3° | 88 | ottantotto |
cifre = [
"zero" , "uno" , "due" , "tre" ,
"quattro" , "cinque" , "sei" , "sette" ,
"otto" , "nove" , "dieci" , "undici" ,
"dodici" , "tredici" , "quattordici", "quindici" ,
"sedici" , "diciassette", "diciotto" , "diciannove"
]
decine = [
"venti" , "trenta" , "quaranta", "cinquanta",
"sessanta", "settanta", "ottanta" , "novanta"
]
#-------------------------------------------------------------------
N = 98
#-------------------------------------------------------------------
if(N < 20):
numero = cifre[N]
else:
decina = N // 10
unita = N % 10
numero = decine[decina-2]
if(unita != 0):
if(unita == 1) or (unita == 8):
numero = numero[:-1]
numero += cifre[unita]
#-------------------------------------------------------------------
print(numero)
La lingua italiana vuole “tre” accentato se alla fine della parola composta
- ventitré
- trentatré
- …
cifra = cifre[unita]
if(unita == 1) or (unita == 8):
numero = numero[:-1]
elif(unita == 3):
cifra = "tré"
numero += cifra