
ayuda con arreglo (insertar un numero y mostrar como se escribe )
Publicado por emanuuel (1 intervención) el 14/03/2016 19:15:02
2 =dos
100 =cien
Valora esta pregunta


0
class Numeros {
private static final String DOS_CON_TILDE = "d\u00F3s";
private static final String TRES_CON_TILDE = "tr\u00E9s";
private static final String SEIS_CON_TILDE = "s\u00E9is";
private static final String PREFIJO_10 = "dieci";
private static final String PREFIJO_20 = "veinti";
private static final String[] UNIDADES = {
"cero",
"uno",
"dos",
"tres",
"cuatro",
"cinco",
"seis",
"siete",
"ocho",
"nueve"
};
private static final String[] ESPECIALES = {
"once",
"doce",
"trece",
"catorce",
"quince",
};
private static final String[] MULTIPLOS_10 = {
"",
"diez",
"veinte",
"treinta",
"cuarenta",
"cincuenta",
"sesenta",
"setenta",
"ochenta",
"noventa",
"cien"
};
private static String convertir(int numero) {
if (numero >= 0 && numero <= 100) {
if (numero >= 0 && numero <= 9) {
return UNIDADES[numero];
} else if (numero >= 11 && numero <= 15) {
return ESPECIALES[numero - 11];
} else if (numero == 16) {
return PREFIJO_10 + SEIS_CON_TILDE;
} else if (numero >= 17 && numero <= 19) {
return PREFIJO_10 + UNIDADES[numero % 10];
} else if (numero % 10 == 0 || numero % 10 == 10) {
return MULTIPLOS_10[numero / 10];
} else if (numero == 22) {
return PREFIJO_20 + DOS_CON_TILDE;
} else if (numero == 23) {
return PREFIJO_20 + TRES_CON_TILDE;
} else if (numero == 26) {
return PREFIJO_20 + SEIS_CON_TILDE;
} else if (numero > 20 && numero < 30) {
return PREFIJO_20 + UNIDADES[numero % 20];
} else {
return MULTIPLOS_10[(numero - numero % 10) / 10] + " y "
+ UNIDADES[numero % 10];
}
} else {
return "n\u00FAmero fuera de rango";
}
}
public static void main(String[] args) {
for (int numero = 1; numero <= 100; ++numero) {
System.out.printf("%3d = %s%n", numero, convertir(numero));
}
}
}