Menu
CoddyTech

Funciones recursivas Parte 2

Parte de la sección Lógica y flujo del Journey de Python de Coddy. Lección 61 de 78.

Las funciones recursivas suelen tener dos partes:

  1. Caso base: Define cuándo debe detenerse la recursión.
  2. Paso recursivo: Llama a la propia función con una entrada más pequeña.

Ejemplo: cálculo del factorial mediante recursión:

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

print(factorial(5))  # Salida: 120

Aquí, la función sigue llamándose a sí misma con n - 1 hasta llegar a 1, donde se detiene la recursión.

Ejemplo: Invertir una cadena:

def recursive_reverse(s):
	if len(s) <= 1:  # Caso base: cadena vacía o de un solo carácter
		return s
	else:
		return recursive_reverse(s[1:]) + s[0]  # Paso recursivo

text = "hello"
result = recursive_reverse(text)
print(result)
# Salida: olleh

En este ejemplo, la función recursive_reverse se llama a sí misma con el resto de la cadena (s[1:]) hasta que la cadena está vacía o tiene solo un carácter. Cada llamada añade el primer carácter al resultado de la llamada recursiva, invirtiendo así la cadena.

challenge icon

Desafío

Fácil

Escribe una función recursiva llamada fibonacci que tome un entero positivo n como argumento y devuelva el enésimo número de Fibonacci. La secuencia de Fibonacci se define así:

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

Entrada de ejemplo:

n = 6

Salida de ejemplo:

5

Pruébalo tú mismo

def fibonacci(n):
    # Escribe el código aquí
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Compilador de Python online