public class NumALetra
{
public static void main(String S[]) { new NumALetra(); }
public NumALetra()
{
int Numero = 0;
String Cadena = "";
while(true)
{
Numero = Integer.parseInt(Lectura.LeeDato("Introduce un numero: "));
Cadena = Conv(Numero);
System.out.println(Cadena);
if (Numero == 0) System.exit(0);
}
}
String Conv(int Numero)
{
String Cadena = "";
int Centenas = Numero / 100;
Numero = Numero - Centenas * 100;
int Decenas = Numero / 10;
Numero = Numero - Decenas * 10;
int Unidades = Numero;
if (Centenas > 0)
{
Cadena += "cien";
if (Centenas > 1 || Decenas != 0 || Unidades != 0) Cadena += "to";
if (Centenas > 1)
{
switch (Centenas)
{
case 5: Cadena = "quiniento"; break;
case 7: Cadena = "sete" + Cadena; break;
case 9: Cadena = "nove" + Cadena; break;
default: Cadena = ConvUnidades(Centenas) + Cadena;
}
Cadena += "s ";
}
}
if (Decenas > 0)
if (Decenas == 1 && Unidades == 0) Cadena += ConvDecenas(1, 0);
else if (Decenas == 1 && Unidades < 6)
{
Cadena += DecenaEspecial(Unidades);
Unidades = 0;
}
else if (Decenas == 1 && Unidades > 5)
{
Cadena += "dieci";
}
else
{
Cadena += ConvDecenas(Decenas, Unidades);
Cadena.concat(ConvUnidades(Unidades));
}
if (Unidades > 0)
Cadena += ConvUnidades(Unidades);
return Cadena;
}
String ConvDecenas(int D, int U)
{
String Decenas = "";
switch(D)
{
case 1: Decenas = "Diez"; break;
case 2:
if (U == 0) Decenas = "Veinte";
else Decenas = "Veinti";
break;
case 3: Decenas = "Treinta"; break;
case 4: Decenas = "Cuarenta"; break;
case 5: Decenas = "Cincuenta"; break;
case 6: Decenas = "Sesenta"; break;
case 7: Decenas = "Setenta"; break;
case 8: Decenas = "Ochenta"; break;
case 9: Decenas = "Noventa"; break;
}
if (U != 0 && D != 2) Decenas += " y ";
return Decenas;
}
String DecenaEspecial(int U)
{
String Unidades = "";
switch(U)
{
case 1: Unidades = " once"; break;
case 2: Unidades = " doce"; break;
case 3: Unidades = " trece"; break;
case 4: Unidades = " catorce"; break;
case 5: Unidades = " quince";
}
return Unidades;
}
String ConvUnidades(int U)
{
String Unidades = "";
switch(U)
{
case 1: Unidades = " uno"; break;
case 2: Unidades = " Dos"; break;
case 3: Unidades = " Tres"; break;
case 4: Unidades = " Cuatro"; break;
case 5: Unidades = " Cinco"; break;
case 6: Unidades = " Seis"; break;
case 7: Unidades = " Siete"; break;
case 8: Unidades = " Ocho"; break;
case 9: Unidades = " Nueve"; break;
}
return Unidades;
}
}