NumALetra.java_



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