29)Criar um programa que receba um número N e imprima na tela os enésimos números ímpares.
Exemplo, se n = 10 então a impressão deverá ser: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19. Utilizar a
classe Scanner e o comando for.
Soluções para a tarefa
Respondido por
1
tem duas formas de fazer esse programa, ambas usando o comando for
Uma é simplesmente variar um contador de 1 em 1 até o n e testar se o resto da divisão do contador por 2 for diferente de 0. Se for diferente, o número é impar e assim vamos listá-lo
Essa é a forma mais comum e pouco eficiente.
Uma forma mais inteligente é calcular o primeiro número ímpar dentro do intervalo e contar de 2 em 2 e simplesmente ir listando. É muito mais rápido.
Em java, a primeira alternativa seria assim
for(int i=1; i<=n; i++){
if (i %2 !=0) {
System.out.println("O número "+i+" é ímpar" );
};
}
Totalmente funcional. O problema é que o if dentro do for vai ser executado n vezes. Se o n for pequeno, num tem problema. Se o n for grande, pode tornar o programa lento
Uma alternativa para fazer isso mais rápido é
n = n-(n%2==0);
for(int i=1; i<=n; i+=2){
System.out.println("O número "+i+" é ímpar" );
}
Nessa alternativa, o teste (que nem é um if) é feito apenas uma vez fora do loop. Muito mais rápido.
Agora só falta usar a classe scanner para obter os valores
O programa pode ser encotnrado aqui
https://repl.it/@bokomoko/lista-impares
Uma é simplesmente variar um contador de 1 em 1 até o n e testar se o resto da divisão do contador por 2 for diferente de 0. Se for diferente, o número é impar e assim vamos listá-lo
Essa é a forma mais comum e pouco eficiente.
Uma forma mais inteligente é calcular o primeiro número ímpar dentro do intervalo e contar de 2 em 2 e simplesmente ir listando. É muito mais rápido.
Em java, a primeira alternativa seria assim
for(int i=1; i<=n; i++){
if (i %2 !=0) {
System.out.println("O número "+i+" é ímpar" );
};
}
Totalmente funcional. O problema é que o if dentro do for vai ser executado n vezes. Se o n for pequeno, num tem problema. Se o n for grande, pode tornar o programa lento
Uma alternativa para fazer isso mais rápido é
n = n-(n%2==0);
for(int i=1; i<=n; i+=2){
System.out.println("O número "+i+" é ímpar" );
}
Nessa alternativa, o teste (que nem é um if) é feito apenas uma vez fora do loop. Muito mais rápido.
Agora só falta usar a classe scanner para obter os valores
O programa pode ser encotnrado aqui
https://repl.it/@bokomoko/lista-impares
angeloferrari2oyr9bz:
obrigado me ajudou mt
Perguntas interessantes