Crie um programa que receba um número inteiro
e que exiba na tela os
primeiros elementos da sequência de Fibonacci:
Passo 1
Beleza, o enunciado tá assim: a gente precisa criar um programa que receba um número inteiro X > 2 e mostre os X primeiros termos da sequência de Fibonacci, que é:
1, 1, 2, 3, 5, 8, 13, 21, 34, …
Conteúdo envolvido: laços de repetição (loop), variáveis temporárias e a definição de Fibonacci, que é dada pela relação de recorrência
1, 1, 2, 3, 5, 8, 13, 21, 34, …
Conteúdo envolvido: laços de repetição (loop), variáveis temporárias e a definição de Fibonacci, que é dada pela relação de recorrência
O que vamos precisar:
- Ler um inteiro X do usuário
- Armazenar os dois primeiros termos (1 e 1)
- Gerar cada termo seguinte somando os dois anteriores
- Exibir os termos até atingir X
Passo 2
Antes de codar, vamos entender a teoria. A sequência de Fibonacci é definida assim:
Para n ≥ 3,
Para n ≥ 3,
Isso significa que cada termo é a soma dos dois anteriores. Pra implementar, a ideia é:
- Guardar F₁ e F₂ em variáveis, digamos
a = 1
eb = 1
. - A cada passo, calcular
c = a + b
(que será F₃, depois F₄, etc.). - Depois de calcular, “empurrar” as variáveis:
a = b
eb = c
, pra sempre ter os dois últimos termos na mão. - Repetir isso num loop até gerar X termos.
Passo 3
Bora traduzir isso em código Python, por exemplo:
# lê X e garante que é maior que 2
X = int(input("Digite um inteiro X > 2: "))
# termos iniciais
a = 1
b = 1
# lista pra guardar e já imprimir depois
fibo = [a, b]
# loop para gerar do 3º até o X-ésimo termo
for i in range(3, X+1):
c = a + b # aplica c = F_{n-1} + F_{n-2}
fibo.append(c) # anexa à lista
a = b # empurra: o anterior vira penúltimo
b = c # o atual vira último
# imprime todos os termos
print("Os", X, "primeiros termos de Fibonacci são:")
print(fibo)
Passo 4
Explicando rapidinho cada parte:
input()
lê uma string;int()
converte pra inteiro.- Começamos
a = 1
eb = 1
porque F₁ e F₂ valem 1. - A lista
fibo
vai acumulando os termos pra a gente só chamar umprint()
no final. - O loop
for i in range(3, X+1)
roda exatamente X–2 vezes, gerando do terceiro até o X-ésimo termo. - Dentro do loop,
c = a + b
é a aplicação direta da fórmula. - Depois de gerar
c
, fazemosa = b
eb = c
pra preparar o próximo cálculo. - No fim, só exibimos a lista.
Resposta
X = int(input("Digite um inteiro X > 2: "))
a, b = 1, 1
fibo = [a, b]
for _ in range(3, X+1):
c = a + b
fibo.append(c)
a, b = b, c
print("Os", X, "primeiros termos de Fibonacci são:")
print(fibo)