Menu
Coddy logo textTech

Funções Recursivas Parte 2

Parte da seção Logic & Flow do Journey de Python da Coddy — lição 61 de 78.

Funções recursivas normalmente têm duas partes:

  1. Caso Base: Define quando a recursão deve parar.
  2. Passo Recursivo: Chama a própria função com uma entrada menor.

Exemplo: Calculando fatorial usando recursão:

def factorial(n):
    if n == 1:  # Caso base
        return 1
    return n * factorial(n - 1)  # Chamada recursiva

print(factorial(5))  # Saída: 120

Aqui, a função continua chamando a si mesma com n - 1 até que alcance 1, onde a recursão para.

Exemplo: Invertendo uma String:

def recursive_reverse(s):
	if len(s) <= 1:  # Caso base: string vazia ou com um único caractere
		return s
	else:
		return recursive_reverse(s[1:]) + s[0]  # Passo recursivo

text = "hello"
result = recursive_reverse(text)
print(result)
# Saída: olleh

Neste exemplo, a função recursive_reverse chama a si mesma com o restante da string (s[1:]) até que a string esteja vazia ou tenha apenas um caractere. Cada chamada anexa o primeiro caractere ao resultado da chamada recursiva, revertendo efetivamente a string.

challenge icon

Desafio

Fácil

Escreva uma função recursiva chamada fibonacci que recebe um número inteiro positivo n como argumento e retorna o enésimo número de Fibonacci. A sequência de Fibonacci é definida como:

  • fibonacci(1) = 0
  • fibonacci(2) = 1
  • fibonacci(n) = fibonacci(n-1) + fibonacci(n-2) para n > 2.

Exemplo de Entrada:

n = 6

Exemplo de Saída:

5

Folha de consulta

Funções recursivas têm duas partes essenciais:

  1. Caso Base: Define quando a recursão deve parar
  2. Passo Recursivo: Chama a própria função com uma entrada menor

Exemplo de fatorial:

def factorial(n):
    if n == 1:  # Caso base
        return 1
    return n * factorial(n - 1)  # Chamada recursiva

print(factorial(5))  # Saída: 120

Exemplo de inversão de string:

def recursive_reverse(s):
    if len(s) <= 1:  # Caso base: string vazia ou com um único caractere
        return s
    else:
        return recursive_reverse(s[1:]) + s[0]  # Passo recursivo

text = "hello"
result = recursive_reverse(text)
print(result)  # Saída: olleh

Experimente você mesmo

def fibonacci(n):
    # Escreva o código aqui
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Logic & Flow