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

Passo 1

O enunciado pede um programa que leia um valor n e calcule o n-ésimo termo da sequência de Padovan usando a relação de recorrência e um laço (for ou while). O conteúdo é sequência definida por recorrência e programação imperativa.

Passo 2

Precisamos tratar os casos-base: para n=0, n=1 e n=2, temos P(n)=1. É importante cobrir essas condições antes de entrar no laço.

Passo 3

Para n≥3, vamos calcular P(n) de forma iterativa. A relação dada é P(n+1)=P(n-1)+P(n-2), que reindexada para P(n) vira P(n)=P(n-2)+P(n-3). Então, se mantivermos três variáveis com os últimos valores, conseguimos avançar de 3 em 3.

Passo 4

Implementamos uma função padovana(n) que: verifica os casos-base, inicializa três variáveis p0, p1, p2 com 1, e faz um for de 3 até n. A cada iteração calcula p = p0 + p1, depois faz p0←p1, p1←p2 e p2←p. Ao final, p2 terá P(n).

Passo 5

Escrevemos o programa principal que lê um inteiro do usuário, chama padovana e imprime o resultado.

Resposta

Programa em Python para calcular o n-ésimo termo da sequência de Padovan

def padovana(n):
# Casos-base: P(0)=P(1)=P(2)=1
if n <= 2:
return 1
# Inicializa P(0), P(1) e P(2)
p0, p1, p2 = 1, 1, 1
# Calcula P(3) até P(n)
for i in range(3, n+1):
p = p0 + p1 # P(i) = P(i-2) + P(i-3)
p0, p1, p2 = p1, p2, p
return p2

Programa principal

def main():
n = int(input("Digite o valor de n: “))
resultado = padovana(n)
print(f"O {n}-ésimo termo da sequência de Padovan é {resultado}.”)
if name == “main”:
main()

Exercícios relacionados