// Convertir un nUmero de 2 dIgitos a letra
class Examen_1
{
public static void main(String RAFA[])
{
Convierte CONV = new Convierte();
CONV.Inicia(78);
}
}
class Convierte
{
String CadenaTotal = "";
void Inicia(int N)
{
int Decenas, Unidades;
boolean flag = false; // flag es para detectar el "dieci" y el "veinti"
Decenas = N/10 > 0 ? N/10 : 0;
Unidades = N%10 > 0 ? N%10 : 0;
if (Decenas > 0) flag = Conv_Decenas(Decenas, Unidades);
if (Unidades > 0 && !flag) Conv_Unidades(Decenas, Unidades);
}
boolean Conv_Decenas(int Decenas, int Unidades)
{
String Cadena = "";
int x;
boolean flag = false;
switch (Decenas)
{
case 1: if (Unidades > 0 && Unidades < 6) {} // Que no haga nada
else if (Unidades != 0) { Cadena = "dieci"; flag = true; } else Cadena = "diez";break;
case 2: if (Unidades != 0) { Cadena = "veinti"; flag = true; } else Cadena = "veinte"; break;
case 3: Cadena = "treinta"; break;
case 4: Cadena = "cuarenta"; break;
case 5: Cadena = "cincuenta"; break;
case 6: Cadena = "sesenta"; break;
case 7: Cadena = "setenta"; break;
case 8: Cadena = "ochenta"; break;
case 9: Cadena = "noventa"; break;
}
CadenaTotal = Cadena;
if (Unidades != 0 && Decenas > 2) CadenaTotal += " y ";
if (flag) Conv_Unidades(0, Unidades);
return flag;
}
void Conv_Unidades(int Decenas, int Unidades)
{
String Cadena = "";
if (Decenas==1)
{
switch(Unidades)
{
case 1: Cadena = "once"; break;
case 2: Cadena = "doce"; break;
case 3: Cadena = "trece"; break;
case 4: Cadena = "catorce"; break;
case 5: Cadena = "quince"; break;
}
} else
switch(Unidades)
{
case 1: Cadena = "uno"; break;
case 2: Cadena = "dos"; break;
case 3: Cadena = "tres"; break;
case 4: Cadena = "cuatro"; break;
case 5: Cadena = "cinco"; break;
case 6: Cadena = "seis"; break;
case 7: Cadena = "siete"; break;
case 8: Cadena = "ocho"; break;
case 9: Cadena = "nueve"; break;
}
System.out.println(CadenaTotal + Cadena);
}
}