No internet connection
  1. Home
  2. Dúvidas Gerais

Array Fill IV(beecrowd 1179)

Por Alan @alandias
    2023-11-04 14:40:22.098Z

    Bom dia pessoal,
    Perdi um pouco o raciocínio para poder pegar o resto dos números pares e impares para imprimir no final, na minha solução, mostrada na imagem, eu peguei apenas os cinco pares e os cinco ímpares, como eu faço para pegar os outros cinco que sobrarem???

    • 8 respostas
    1. Agora você poderá refatorar esse exemplo acima e dá até para criar uma função para imprimir e adicionar os vetores sendo que a lógica para adicionar valores aos vetores e imprimir são iguais.

      1. Em resposta aalandias:

        const valores = [1, 3, 4, -4, 2, 3, 8, 2, 5, -7, 54, 76, 789, 23, 98];
        let pares = [];
        let impares = [];
        for (let i = 0; i < 15; i++) {
        let numero = parseInt(valores[i]);
        if (numero % 2 === 0) {
        //se for par entra aqui
        if (pares.length < 5) {
        pares.push(numero);
        } else {
        //imprime vetor par se ele estiver com 5 posições
        for (let cont = 0; cont < 5; cont++) {
        console.log(par[${cont}] = + pares[cont]);
        }
        //Limpa vetor par a partir da posic 0.
        pares.splice(0);
        pares.push(numero);
        }
        } else {
        //se impar par entra aqui
        if (impares.length < 5) {
        impares.push(numero);
        } else {
        //imprime vetor impar se ele estiver com 5 posições
        for (let cont = 0; cont < 5; cont++) {
        console.log(impar[${cont}] = + impares[cont]);
        }
        //Limpa vetor impares a partir da posic 0
        impares.splice(0);
        impares.push(numero);
        }
        }
        }
        //ao sair do laço imprime o restante começando pelo vetor impar;
        let contImpar = 0;
        impares.forEach(
        impar => {
        console.log(impar[${contImpar}] = + impar);
        contImpar++;
        }
        );
        let contPar = 0;
        pares.forEach(
        par => {
        console.log(par[${contPar}] = + par);
        contPar++;
        }
        );

        1. Em resposta aalandias:

          Agora deu certo rsrsrsrsrsrsr

          1. C
            Em resposta aalandias:
            Camila Vieira @CamilaVieira
              2023-11-04 19:23:24.124Z

              Oi, Alan. Vou tentar te explicar sem colocar código aqui. Eu acho que o problema é que você está fazendo a checagem do tamanho dos vetores 'par' e 'impar' fora do for. Da forma que você fez, mais de 5 números vão ser colocados nos vetores par e impar.

              Dentro do for que recebe os 15 números, você precisa checar se os vetores tem tamanho 5 e já imprimir eles, em seguida esvaziar o vetor pra poder colocar os próximos números de entrada.

              Essa é uma abordagem que você poderia usar. O seu código está no caminho certo, só teve essa pequena falha.

              Espero ter ajudado!

              1. AAlan @alandias
                  2023-11-05 11:04:42.917Z

                  Olá, Camila, Obrigado pela explicação, entendi.

                • A
                  Em resposta aalandias:
                  Alan @alandias
                    2023-11-04 15:49:59.953Z

                    Obrigado, vou tentar entender a sua solução, Obrigado !

                    1. Em resposta aalandias:

                      Poderia mandar seu código aqui? deixa eu refatorar ele e te enviar um exemplo explicando.

                      1. AAlan @alandias
                          2023-11-04 14:51:57.450Z

                          Olá, Thiago
                          Sim, vou mandar aqui, Obrigado !!!

                          let pares = [];
                          let impares = [];

                          for(let i = o; i < 15; i++){
                          let numero = parseInt(lines.shift());
                          if(numero % 2 === 0){
                          pares.push(numero);
                          }else{
                          impares.push(numero);
                          }
                          }

                          if(pares.lenght === 5){
                          for(let i = 0; i < 5; i++){
                          console.log(par[${i}] = ${pares[i]});
                          }
                          }
                          if(impares.lenght === 5){
                          for(let i = 0; i < 5; i++){
                          console.log(impar[${i}] = ${impares[i]});
                          }
                          }