Cómo encontrar la suma de números naturales usando la recursividad

La recursividad es un proceso en el que una función se llama a sí misma directa o indirectamente. Los algoritmos recursivos se utilizan ampliamente en informática para resolver problemas complejos dividiéndolos en otros más simples.

Puede comprender mejor los conceptos recursivos resolviendo problemas básicos de programación como el "producto de dos números", "la suma de los primeros n números naturales" y más.

En este artículo, aprenderá a encontrar la suma de los primeros n números naturales mediante la recursividad.

Planteamiento del problema

Te dan un número natural n , necesitas encontrar la suma de los primeros n números naturales usando la recursividad.

Ejemplo 1 : Sea n = 5

Por lo tanto, la suma de los primeros 5 números naturales = 1 + 2 + 3 + 4 + 5 = 15.

Por tanto, la salida es 15.

Ejemplo 2 : Sea n = 7

Por lo tanto, la suma de los primeros 7 números naturales = 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28.

Por tanto, la salida es 28.

Ejemplo 3 : Sea n = 6

Por lo tanto, la suma de los primeros 6 números naturales = 1 + 2 + 3 + 4 + 5 + 6 = 21.

Por tanto, la salida es 21.

Función recursiva para encontrar la suma de los primeros N números naturales

La mayoría de las funciones recursivas tienen la siguiente estructura relativa:

 FUNCTION name
IF condition THEN
RETURN result
ELSE
CALL FUNCTION name
END FUNCTION

Para encontrar la suma de los primeros n números naturales, observe y aplique el siguiente pseudocódigo:

 findSum(n):
IF n<=1 THEN
RETURN n
ELSE
RETURN n + findSum(n-1)
END FUNCTION

Ahora, puede implementar este pseudocódigo en su lenguaje de programación favorito.

Relacionado: ¿Qué es una función en la programación?

Nota : También puede encontrar la suma de los primeros n números naturales usando la siguiente fórmula matemática:

Suma de n números naturales = n * (n + 1) / 2

Con este método, puede encontrar la suma en un paso sin usar la recursividad.

Implementación de C ++ para encontrar la suma de los primeros N números naturales mediante recursividad

A continuación se muestra la implementación de C ++ para encontrar la suma de los primeros n números naturales usando la recursividad:

 // C++ implementation to find the sum of
// first n natural numbers using recursion
#include <iostream>
using namespace std;
// Recursive function to find the sum of first n natural numbers
int findSum(int n)
{
if (n<=1)
{
return n;
}
else
{
return n + findSum(n-1);
}
}
// Driver code
int main()
{
int n1 = 5, n2 = 7, n3 = 6;
cout << "n1: " << n1 << endl;
cout << "n2: " << n2 << endl;
cout << "n3: " << n3 << endl;
cout << "Sum of first " << n1 << " natural numbers: " << findSum(n1) << endl;
cout << "Sum of first " << n2 << " natural numbers: " << findSum(n2) << endl;
cout << "Sum of first " << n3 << " natural numbers: " << findSum(n3) << endl;
return 0;
}

Producción:

 n1: 5
n2: 7
n3: 6
Sum of first 5 natural numbers: 15
Sum of first 7 natural numbers: 28
Sum of first 6 natural numbers: 21

Implementación de Python para encontrar la suma de los primeros N números naturales mediante recursividad

A continuación se muestra la implementación de Python para encontrar la suma de los primeros n números naturales usando la recursividad:

Relacionado: Programación dinámica: ejemplos, problemas comunes y soluciones

 # Python implementation to find the sum of
# first n natural numbers using recursion
# Recursive function to find the sum of first n natural numbers
def findSum(n):
if n<=1:
return n
else:
return n + findSum(n-1)
# Driver Code
n1 = 5
n2 = 7
n3 = 6
print("n1: ", n1)
print("n2: ", n2)
print("n3: ", n3)
print("Sum of first ", n1, " natural numbers: ", findSum(n1))
print("Sum of first ", n2, " natural numbers: ", findSum(n2))
print("Sum of first ", n3, " natural numbers: ", findSum(n3))

Producción:

 n1: 5
n2: 7
n3: 6
Sum of first 5 natural numbers: 15
Sum of first 7 natural numbers: 28
Sum of first 6 natural numbers: 21

Implementación de C para encontrar la suma de los primeros N números naturales utilizando la recursividad

A continuación se muestra la implementación de C para encontrar la suma de los primeros n números naturales usando la recursividad:

 // C implementation to find the sum of
// first n natural numbers using recursion
#include <stdio.h>
// Recursive function to find the sum of first n natural numbers
int findSum(int n)
{
if (n<=1)
{
return n;
}
else
{
return n + findSum(n-1);
}
}
// Driver code
int main()
{
int n1 = 5, n2 = 7, n3 = 6;
printf("n1: %d ⁠n", n1);
printf("n2: %d ⁠n", n2);
printf("n3: %d ⁠n", n3);
printf("Sum of first %d natural numbers: %d ⁠n", n1, findSum(n1));
printf("Sum of first %d natural numbers: %d ⁠n", n2, findSum(n2));
printf("Sum of first %d natural numbers: %d ⁠n", n3, findSum(n3));
return 0;
}

Producción:

 n1: 5
n2: 7
n3: 6
Sum of first 5 natural numbers: 15
Sum of first 7 natural numbers: 28
Sum of first 6 natural numbers: 21

Implementación de JavaScript para encontrar la suma de los primeros N números naturales mediante recursividad

A continuación se muestra la implementación de JavaScript para encontrar la suma de los primeros n números naturales usando la recursividad:

 // JavaScript implementation to find the sum of
// first n natural numbers using recursion
// Recursive function to find the sum of first n natural numbers
function findSum(n) {
if (n<=1) {
return n;
} else {
return n + findSum(n-1);
}
}

// Driver Code
var n1 = 5, n2 = 7, n3 = 6;
document.write("n1: " + n1 + "<br>");
document.write("n2: " + n2 + "<br>");
document.write("n3: " + n3 + "<br>");
document.write("Sum of first " + n1 + " natural numbers: " + findSum(n1) + "<br>");
document.write("Sum of first " + n2 + " natural numbers: " + findSum(n2) + "<br>");
document.write("Sum of first " + n3 + " natural numbers: " + findSum(n3) + "<br>");

Producción:

 n1: 5
n2: 7
n3: 6
Sum of first 5 natural numbers: 15
Sum of first 7 natural numbers: 28
Sum of first 6 natural numbers: 21

Implementación de Java para encontrar la suma de los primeros N números naturales mediante recursividad

A continuación se muestra la implementación de Java para encontrar la suma de los primeros n números naturales utilizando la recursividad:

Relacionado:¿Qué es una función recursiva y cómo se crea una en Java?

 // Java implementation to find the sum of
// first n natural numbers using recursion
public class Main
{
// Recursive function to find the sum of first n natural numbers
public static int findSum(int n)
{
if (n <= 1)
{
return n;
}
else
{
return n + findSum(n - 1);
}
}
// Driver code
public static void main(String[] args)
{
int n1 = 5, n2 = 7, n3 = 6;
System.out.println("n1: " + n1);
System.out.println("n2: " + n2);
System.out.println("n3: " + n3);
System.out.println("Sum of first " + n1 + " natural numbers: " + findSum(n1));
System.out.println("Sum of first " + n2 + " natural numbers: " + findSum(n2));
System.out.println("Sum of first " + n3 + " natural numbers: " + findSum(n3));
}
}

Producción:

 n1: 5
n2: 7
n3: 6
Sum of first 5 natural numbers: 15
Sum of first 7 natural numbers: 28
Sum of first 6 natural numbers: 21

Conozca más sobre la recursividad

El pensamiento recursivo es muy importante en la programación. A veces, la solución recursiva puede ser más sencilla de leer que la iterativa. Puede resolver muchos problemas como el problema de la Torre de Hanoi, DFS of Graph, Inorder / Preorder / Postorder Tree Traversals, etc., utilizando la recursividad.

La recursividad es una estrategia de resolución de problemas muy poderosa. Hoy en día también se usa ampliamente en programación funcional. Debe conocer los conceptos básicos de la recursividad y cómo puede aplicarlos en sus esfuerzos de programación.