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; } }