Write number entered in full in JS

0

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?

    
asked by anonymous 19.05.2018 / 00:28

1 answer

0

var n = (prompt("Digite um número: "));

		var unidades=["Zero", "Um", "Dois", "Três", "Quatro", "Cinco", "Seis", "Sete", "Oito", "Nove"];
		var especiais=["Dez","Onze", "Doze", "Treze", "Catorze", "Quinze", "Dezeseis", "Dezsete", "Dezoito", "Deznove"]; 
		var dezenas=["Vinte", "Trinta", "Quarenta", "Cinquenta", "Sessenta", "Setenta", "Oitenta", "Noventa"];
		var centenas=["Cem", "Duzentos", "Trezentos", "Quatrocentos", "Quinhetos", "Seiscentos","Setescentos","Oitocentos", "Novecentos"];
		
		//Valores com 1 algarismo
		if(n.length === 1) {
			//Imprimir unidadades
			document.write(unidades[parseInt(n[0])]);
		}	

		//Valores com 2 algarismos
		else if(n.length === 2) {
			//Especiais
			if((n[0]=='1') && (n[1]=='0'||n[1]=='1'||n[1]=='2'||n[1]=='3'||n[1]=='4'||n[1]=='5'||n[1]=='6'||n[1]=='7'||n[1]=='8'||n[1]=='9')) {
				document.write(especiais[parseInt(n[1])]);
			}
			
			//Dezenas
			else if((n[0]=='2'||n[0]=='3'||n[0]=='4'||n[0]=='5'||n[0]=='6'||n[0]=='7'||n[0]=='8'||n[0]=='9') && n[1]=='0') {
				document.write(dezenas[parseInt(n[0]-2)]);
			}

			//Dezenas compostas
			else {
				document.write(dezenas[parseInt(n[0]-2)]+" e "+unidades[parseInt(n[1])]);
			}
		}

		//Valores com 3 algarimos
		else if (n.length === 3) {
			//Centenas inteiras
			if ((n[0]=='1'||n[0]=='2'||n[0]=='3'||n[0]=='4'||n[0]=='5'||n[0]=='6'||n[0]=='7'||n[0]=='8'||n[0]=='9') && (n[1]=='0' && n[2]=='0')) {
				document.write(centenas[parseInt(n[0]-1)])
			}

			//Centenas + números especiais
			else if ((n[0]=='2'||n[0]=='3'||n[0]=='4'||n[0]=='5'||n[0]=='6'||n[0]=='7'||n[0]=='8'||n[0]=='9') && (n[1]=='1') && ((n[2]=='1'||n[2]=='2'||n[2]=='3'||n[2]=='4'||n[2]=='5'||n[2]=='6'||n[2]=='7'||n[2]=='8'||n[2]=='9'))) {
				document.write(centenas[parseInt(n[0]-1)]+" e "+especiais[parseInt(n[2])])
			}

			//Centenas + Nº Compostos
			else if ((n[0]=='2'||n[0]=='3'||n[0]=='4'||n[0]=='5'||n[0]=='6'||n[0]=='7'||n[0]=='8'||n[0]=='9') && (n[1]!='1')) {
				document.write(centenas[parseInt(n[0]-1)]+" e "+dezenas[parseInt(n[1]-2)]+" e "+unidades[parseInt(n[2])]);
			}

			//Cento + Nº Especiais
			else if ((n[0]=='1') && (n[1]=='1') && (n[2]=='1'||n[2]=='2'||n[2]=='3'||n[2]=='4'||n[2]=='5'||n[2]=='6'||n[2]=='7'||n[2]=='8'||n[2]=='9')) {
				document.write("Cento e "+especiais[parseInt(n[2])])
			}

			//Cento + Nº Compostos
			else if ((n[0]=='1') && (n[1]!='1') && (n[2]!='0')) {
				document.write("Cento e "+dezenas[parseInt(n[1]-2)]+" e "+unidades[parseInt(n[2])]);
			}
		}

Problem solved, follow the code:

    
20.05.2018 / 17:00