1059 Saída impar inesperada
Boa tarde!
Alguém pode me dizer aonde estou errado?
Na saída do Beecrowd está imprimindo números ímpares tbm. Mas no Vscode não.
let cont= parseInt(lines.shift());
while (cont<=100){
let resto=cont&2;
if(resto == 0){
console.log(cont);
}
cont = cont+1;
}
Julio @JulioNesse exercício não existe uma entrada, então a sua variavel 'cont' não esta recebendo nada, inicialmente.
O correto seria atribuir o valor 2 a ela.
E a formula correta do Resto (ou mod, como vai ouvir com mais frequencia), é o %;
Ex: n % 2 === 0 -->> é um número par. Resto da divisao por 2 é 0.E dica, sempre que for fazer comparação com o numero 0, utilize três iguais. Pois o numero 0 com dois iguais pode ser considerado como null ou undefined ou false. O que as vezes pode 'quebrar' seu algoritmo.
Seu código deveria ficar mais ou menos assim:
.
.
.
.
.let count = 2; while(count <= 100){ let resto = count % 2 if(resto === 0){ console.log(count) } count = count + 1 }
Em resposta amoniquecamelo⬆:Christian Amsberg Janner @calemaoOlha eu fiz de maneira diferente de você, em vez de usar o while eu utilizei o "for" porém no seu código tente mudar o igual do "if" para 3 iguais da seguinte forma:
if(resto === 0){
Em resposta amoniquecamelo⬆:Christian Amsberg Janner @calemaose quiser deixar seu código um pouco mais "limpo" ou "bonitinho" mude essa parte final do código para:
console.log(cont);
}
cont++
}A principal diferença técnica está na forma como o valor de count é modificado. Com count++, o incremento ocorre após o uso do valor na expressão, enquanto com count = count + 1, o incremento ocorre explicitamente na atribuição, após a avaliação da expressão. Em termos de resultado final, ambos os métodos aumentam o valor da variável em 1. A escolha entre eles geralmente depende da preferência pessoal e do estilo de codificação. O uso do operador ++ é mais conciso, enquanto a adição explícita é mais clara em termos de intenção do código.
- VEm resposta amoniquecamelo⬆:Victor Biguete @victorbiguete
Monique, ao meu ver, seu erro está na operação de resto, você colocou & ao invés de % e quando for fazer a comparação use === ao invés de só ==.
- JEm resposta amoniquecamelo⬆:João Jorge dos Anjos Paixão @joaojorge
Acredito que seja mais fácil pensar e usar o for, porque você sabe exatamente o número de vezes que precisa repetir ou contar, então o for é mais visual. O while dizem e eu prefiro pensar assim também, pra usar quando não se sabe quantas vezes ele vai rodar.
Nesse caso você precisa passar do 1 até o 100 e imprimir todos os números par, incluindo o 1 e o 100.
É legal você testar isso no vs code, já que não tem input.
Faz o for e faz ele passar as 100 vezes.
Pensa na condição para o número ser par, no caso n % 2 ===0;
Coloca em um if, e passa o n junto com o indice (n[i] % 2 ===0);
E se colocar um console.log dentro do for, você vai ver quais os números que são.
Se até ai estiver certo, é só colocar a variável count dentro como você fez e depois imprimir ela.
Bom usar também o count ++;
p.s escrevi impar antes, perdao hahaha
Em resposta amoniquecamelo⬆:Lucas Stutz @lucas.stutzUma opção alternativa seria utilizar o for, definir o i com 1 e suas restrições, como ser menor igual a 100 e ter o acréscimo a todo loop, depois fazer a verificação se é par com %2===0 e depois simplesmente ler i.