. Sequência de Fibonacci
Implemente um programa que receba um número n e imprima os primeiros n termos da Sequência de Fibonacci.
Implemente um programa que receba um número n e imprima os primeiros n termos da Sequência de Fibonacci.
Passo 1
Beleza! O exercício pede para a gente criar um programa que recebe um número n e imprime os primeiros n termos da sequência de Fibonacci.
Conteúdo: sequência de Fibonacci e laço de repetição (loop).
O que precisamos:
Conteúdo: sequência de Fibonacci e laço de repetição (loop).
O que precisamos:
- Saber o que é a sequência de Fibonacci (fórmula de recorrência).
- Usar uma estrutura de repetição (por exemplo,
for
ouwhile
). - Controlar duas variáveis que guardam os últimos valores gerados.
Passo 2
Vamos entender a teoria por trás da sequência de Fibonacci.
A gente define:
,
,
e, para todo :
A gente define:
e, para todo
Isso significa que cada termo (a partir do terceiro) é a soma dos dois termos anteriores.
Passo 3
Agora, como a gente transforma isso em código? A ideia é:
- Receber o valor de n.
- Se n ≥ 1, imprimir F₀ (que é 0).
- Se n ≥ 2, imprimir F₁ (que é 1).
- A partir do terceiro termo, usar um loop:
- Manter duas variáveis, digamos
a = F_{i-2}
eb = F_{i-1}
. - Em cada iteração, computar
c = a + b
(que será Fᵢ), imprimirc
, e então atualizara = b
,b = c
.
- Manter duas variáveis, digamos
- Parar quando a gente imprimir n termos.
Passo 4
Vamos escrever passo a passo em Python (pode ser adaptado pra outra linguagem):
n = int(input("Quantos termos você quer? ")) # Ler n
# 1) Termos iniciais
a = 0
b = 1
# 2) Loop para imprimir os n termos
for i in range(n):
if i == 0:
print(a) # F₀
elif i == 1:
print(b) # F₁
else:
c = a + b # Fᵢ = F_{i-2} + F_{i-1}
print(c)
a = b # shift: agora o anterior vira a
b = c # b vira o novo termo
Passo 5
Vamos testar rapidinho:
Se
0 (i=0), 1 (i=1), 1 (i=2), 2 (i=3), 3 (i=4).
Perfeito, são os primeiros 5 termos da série.
Se
n = 5
, o loop faz i = 0,1,2,3,4 e imprime:0 (i=0), 1 (i=1), 1 (i=2), 2 (i=3), 3 (i=4).
Perfeito, são os primeiros 5 termos da série.
Resposta
n = int(input("Quantos termos você quer? "))
a, b = 0, 1
for i in range(n):
if i == 0:
print(a)
elif i == 1:
print(b)
else:
c = a + b
print(c)
a, b = b, c