I have a college job to do where I ask the user to enter a number between 0 and 999 and the algorithm should print the value typed in full. I asked for help for the teacher today and he said to do it using string, where each number entered is in position and then the program compare those values. The problem is that I'm not getting it.
I made this code below only that it is not printing the values correctly and is unfinished
var n = (prompt("Digite um número: "));
var pos_c = parseInt(n[0]); //Centena
var pos_d = parseInt(n[0]); // Dezenas
var pos_u = parseInt(n[0]); //Unidade
var pos_e = parseInt(n[1]); //Especiais
var unidades=["Zero", "Um", "Dois", "Três", "Quatro", "Cinco", "Seis", "Sete", "Oito", "Nove"];
var especiais=["Onze", "Doze", "Treze", "Catorze", "Quinze", "Dezeseis", "Dezsete", "Dezoito", "Deznove"];
var dezenas=["Dez"," Vinte", "Trinta", "Quarenta", "Cinquenta", "Sessenta", "Setenta", "Oitenta", "Noventa"];
var centenas=["Cem", "Duzentos", "Trezentos", "Quatrocentos", "Quinhetos", "Seiscentos","Setescentos","Oitocentos", "Novecentos"];
/*Irá verificar o tamanho vetor e em seguida fará testes para descobrir a centena,dezena e unidade do número*/
//Imprimir unidadades
if(n.length === 1) {
if (n[0]== '0'||'1'||'2'||'3'||'4'||'5'||'6'||'7'||'8'||'9') {
document.write(unidades[pos_u]);
}
}
else if(n.length === 2) {
//Números entre 20 e 99
if(n[0]=='2'||'3'||'4'||'5'||'6'||'7'||'8'||'9' && n[1]=='1'||'2'||'3'||'4'||'5'||'6'||'7'||'8'||'9') {
document.write(dezenas[pos_d-1]+" e "+unidades[pos_u+1]);
}
//Dezenas
else if ((n[0]=='1'||'2'||'3'||'4'||'5'||'6'||'7'||'8'||'9') && n[1]==="0") {
document.write(dezenas[pos_d-1]);
}
//Imprimir Especiais
else if (n[0]=='1' && n[1]=='0'||'1'||'2'||'3'||'4'||'5'||'6'||'7'||'8'||'9') {
document.write(especiais[pos_e-1]);
}
}
Are there any other ways to do this algorithm?