Considere a função G a seguir, codificada na linguag...
void G (int n, int x, int y)
{
int i, z;
printf ("%d %d", x, y);
i = 0;
while (i < n-2)
{
z = x + y;
printf (" %d", z);
x = y;
y = z;
i = i + 1;
}
printf ("\n");
}
Para que sejam impressos os 10 primeiros termos da Sequência de Fibonacci
0 1 1 2 3 5 8 13 21 34,
a chamada correta para a função G é:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: A - G (10, 0, 1)
Para compreender a alternativa correta, precisamos primeiro entender o que a função G na questão está realizando. A função tem o objetivo de imprimir uma sequência de números onde cada número é a soma dos dois números anteriores. Essa é a base da famosa Sequência de Fibonacci, onde cada termo é a soma dos dois termos anteriores, iniciando-se com os termos 0 e 1.
Na função G, os dois primeiros números são impressos diretamente pela linha printf("%d %d", x, y);
. Em seguida, um laço while
é empregado para calcular e imprimir os termos restantes da sequência. A variável i é utilizada como contador do loop e a condição de parada é i < n-2, o que é crítico para entender a resposta correta.
O parâmetro n na chamada da função G determina o número total de termos a serem impressos. Como os dois primeiros termos já são impressos automaticamente antes do loop, o loop irá executar n-2 vezes para imprimir os termos restantes. Para imprimir 10 termos, o loop deve executar 8 vezes (já que 10 - 2 = 8), e, portanto, o valor de n deve ser 10.
Os parâmetros x e y representam os dois primeiros termos da sequência. Para seguir a Sequência de Fibonacci conforme o enunciado de questão, o primeiro termo (x) deve ser 0 e o segundo termo (y) deve ser 1.
Com isso, a chamada correta é G (10, 0, 1), pois isso resulta nos primeiros dois termos sendo 0 e 1, e o loop while se repetindo 8 vezes, para um total de 10 termos impressos, exatamente como a Sequência de Fibonacci solicitada.
As outras alternativas estão incorretas porque não respeitam a necessidade de imprimir exatamente os 10 primeiros termos da Sequência de Fibonacci começando com 0 e 1 ou porque não ajustam o valor de n adequadamente para contabilizar os dois primeiros termos já impressos.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
gabarito letra a (10,0,1)
os primeiros valores impressos são 0 e 1 que se referem a X e Y.
quando i = 0, imprime 1
quando i = 1, imprime 2
quando i = 2, imprime 3
quando i = 3, imprime 5
quando i = 4, imprime 8
quando i = 5, imprime 13
quando i = 6, imprime 21
quando i = 7, imprime 34, a condição de verificação é (i
Outra forma de resolver, bem simples.
n = quantidade de números. Como são 10 números na sequência, então n = 10.
x e y são os números iniciais, que são 0 e 1.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo