Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Recursión | Algunos Temas Avanzados
Funciones en C++

Recursión

Desliza para mostrar el menú

Recursión en programación se refiere a la técnica en la que una función se llama a sí misma para resolver una instancia más pequeña del mismo problema. Es una forma poderosa y elegante de resolver problemas que pueden descomponerse en subproblemas más pequeños del mismo tipo.

Las funciones recursivas suelen constar de dos componentes:

  • Caso base: Define la condición de terminación para la función recursiva. Cuando se alcanza el caso base, la función deja de llamarse y retorna un valor específico. Esto es necesario para evitar la recursión infinita.

  • Caso recursivo: Define la lógica para descomponer el problema en subproblemas más pequeños y llamar a la función recursivamente con entradas reducidas. El caso recursivo permite que la función avance hacia el caso base.

Note
Nota

El factorial de un número n se define de la siguiente manera:

n! = n*(n-1)*(n-2)*..*2*1 = n*(n-1)!

main.cpp

main.cpp

12345678910111213141516171819
#include <iostream> // Function to calculate factorial int factorial(int n) { // Base case: factorial of 0 or 1 is 1 if (n == 0 || n == 1) return 1; // Recursive case: multiply n with factorial of (n-1) std::cout << "Recursive Case: " << n << " * factorial(" << n - 1 << ")" << std::endl; return n * factorial(n - 1); } int main() { // Call the function std::cout << factorial(5) << std::endl; }

Caso base: El caso base ocurre cuando la entrada n es igual a 0 o 1. En este caso, el factorial se define como 1. El caso base garantiza que la recursión termine y previene la recursión infinita.

Caso recursivo: El caso recursivo es la lógica para calcular el factorial de n cuando n es mayor que 1. Consiste en llamar recursivamente a la función factorial con n - 1 como argumento y multiplicar el resultado por n. Esto reduce el problema a un subproblema más pequeño al calcular el factorial de un número menor.

Llamar a la función con argumento igual a 5. Aquí está el proceso paso a paso:

  • factorial(5) llama a factorial(4) y multiplica el resultado por 5.
  • factorial(4) llama a factorial(3) y multiplica el resultado por 4.
  • factorial(3) llama a factorial(2) y multiplica el resultado por 3.
  • factorial(2) llama a factorial(1) y multiplica el resultado por 2.
  • factorial(1) es el caso base y retorna 1.
  • la multiplicación continúa hacia arriba en la cadena, resultando en el factorial final de 5 que es igual a 120.
question mark

¿Cuál es la salida de la función factorial() creada en el capítulo para la entrada 3?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 3

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 4. Capítulo 3
some-alt