Considere os abaixo algoritmos e responda:
Algoritmo 1 | Algoritmo 2 |
---|---|
Algoritmo 2: Calcule o número de vezes que o texto Olá será impresso considerando
.
Passo 1
Beleza, a questão é sobre o Algoritmo 2. Ele faz um laço onde a variável i começa em 1 e a cada iteração é multiplicada por 2 até ultrapassar n. Dentro do laço, tem uma condição que testa se i é par (i % 2 == 0) e, se for, imprime “Olá”.
Conteúdo: estruturas de repetição (loop), operador módulo e progressão geométrica.
Vamos precisar entender:
Conteúdo: estruturas de repetição (loop), operador módulo e progressão geométrica.
Vamos precisar entender:
- Como funciona o
for
comi *= 2
. - O que significa
i % 2 == 0
.
Passo 2
Primeiro, vamos listar os valores de i dentro do loop quando n = 15:
O
i₁ = 1
i₂ = 1·2 = 2
i₃ = 2·2 = 4
i₄ = 4·2 = 8
i₅ = 8·2 = 16 (aqui já é > 15, então o loop para antes de executar)
O
for
é for(int i = 1; i <= n; i *= 2)
, então:i₁ = 1
i₂ = 1·2 = 2
i₃ = 2·2 = 4
i₄ = 4·2 = 8
i₅ = 8·2 = 16 (aqui já é > 15, então o loop para antes de executar)
Logo, os valores efetivos de i são: 1, 2, 4 e 8.
Passo 3
Agora a condição
if (i % 2 == 0)
imprime “Olá” só quando i é par. Vamos ver cada caso:- i = 1 → 1 % 2 = 1 (ímpar) → NÃO imprime
- i = 2 → 2 % 2 = 0 (par) → imprime
- i = 4 → 4 % 2 = 0 (par) → imprime
- i = 8 → 8 % 2 = 0 (par) → imprime
Passo 4
Contando os “ins” da condição par, temos 3 impressões: para i=2, i=4 e i=8.
Resposta
O texto “Olá” será impresso 3 vezes.