Exercício 8: Escrever um programa no qual o usuário fornece um valor n e então uma função Fibonacci fornece o n-ésimo termo da seqüência de Fibonacci. Você deve utilizar um for ou um while em Fibonacci e a seguinte fórmula para encontrar o n-ésimo termo da seqüência:
lF(n)=F(n-1)+F(n-2) F(1)=F(0)=1

Passo 1

O exercício pede para criar um programa que, dado um valor n fornecido pelo usuário, calcula o n-ésimo termo da sequência de Fibonacci usando um loop (for ou while) e a fórmula recursiva F(n)=F(n-1)+F(n-2) com condições iniciais F(0)=1 e F(1)=1. Vamos implementar isso de forma iterativa.

Passo 2

Precisamos tratar primeiro os casos-base: quando n=0 ou n=1, a resposta é imediatamente 1 segundo F(0)=1 e F(1)=1. Isso evita entrar no loop desnecessariamente.

Passo 3

Para n>=2, usamos duas variáveis auxiliares, digamos a e b, inicializadas em 1 (que representam F(0) e F(1)). A cada iteração do loop, calculamos o próximo termo como c = a + b, depois atualizamos a b e b c. Assim, após n-1 iterações, b conterá F(n).
A estrutura geral em Python ficaria assim: definimos uma função fibonacci(n) que implementa o algoritmo acima; depois, na parte principal, lemos n do usuário e exibimos o resultado.

Passo 4

Com isso, temos um programa de complexidade O(n) em tempo e O(1) em espaço extra, que atende ao requisito de usar for ou while para calcular F(n).

Resposta

Programa em Python para calcular o n-ésimo termo de Fibonacci usando loop

def fibonacci(n):
# Casos-base
if n == 0 or n == 1:
return 1
# Inicialização
a, b = 1, 1 # a = F(0), b = F(1)
# Cálculo iterativo de F(2) até F(n)
for _ in range(2, n+1):
c = a + b
a = b
b = c
return b

Função principal

if name == ‘main’:
n = int(input('Digite o valor de n: ‘))
resultado = fibonacci(n)
print(f’O {n}-ésimo termo da sequência de Fibonacci é {resultado}’)

Exercícios relacionados