Menu
Coddy logo textTech

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 normalmente tienen 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: calcular el 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 continúa llamándose a sí misma con n - 1 hasta que llega a 1, donde la recursión se detiene.

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 un solo 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 n.º número de Fibonacci. La sucesión de Fibonacci se define de la siguiente manera:

  • 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