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:
Passo 1
O exercício pede para criar um programa que, dado um valor
fornecido pelo usuário, calcula o
-ésimo termo da sequência de Fibonacci usando um loop (for ou while) e a fórmula recursiva
com condições iniciais
e
. Vamos implementar isso de forma iterativa.
Passo 2
Precisamos tratar primeiro os casos-base: quando
ou
, a resposta é imediatamente
segundo
e
. Isso evita entrar no loop desnecessariamente.
Passo 3
Para
, usamos duas variáveis auxiliares, digamos
e
, inicializadas em
(que representam
e
). A cada iteração do loop, calculamos o próximo termo como
, depois atualizamos
e
. Assim, após
iterações,
conterá
.
A estrutura geral em Python ficaria assim: definimos uma função que implementa o algoritmo acima; depois, na parte principal, lemos
do usuário e exibimos o resultado.
A estrutura geral em Python ficaria assim: definimos uma função
Passo 4
Com isso, temos um programa de complexidade
em tempo e
em espaço extra, que atende ao requisito de usar for ou while para calcular
.
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
# 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}’)
n = int(input('Digite o valor de n: ‘))
resultado = fibonacci(n)
print(f’O {n}-ésimo termo da sequência de Fibonacci é {resultado}’)