Como Encontrar a Soma dos Números Naturais Usando Recursão

Recursão é um processo no qual uma função chama a si mesma direta ou indiretamente. Algoritmos recursivos são amplamente usados ​​na ciência da computação para resolver problemas complexos, dividindo-os em outros mais simples.

Você pode entender melhor os conceitos recursivos resolvendo problemas básicos de programação como o "produto de dois números", "a soma dos primeiros n números naturais" e muito mais.

Neste artigo, você aprenderá como encontrar a soma dos primeiros n números naturais usando recursão.

Declaração do Problema

Você recebeu um número natural n , você precisa encontrar a soma dos primeiros n números naturais usando recursão.

Exemplo 1 : Seja n = 5

Portanto, a soma dos primeiros 5 números naturais = 1 + 2 + 3 + 4 + 5 = 15.

Portanto, a saída é 15.

Exemplo 2 : Seja n = 7

Portanto, a soma dos primeiros 7 números naturais = 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28.

Portanto, a saída é 28.

Exemplo 3 : Seja n = 6

Portanto, a soma dos primeiros 6 números naturais = 1 + 2 + 3 + 4 + 5 + 6 = 21.

Portanto, a saída é 21.

Função recursiva para encontrar a soma dos primeiros N números naturais

A maioria das funções recursivas tem a seguinte estrutura relativa:

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

Para encontrar a soma dos primeiros n números naturais, observe e aplique o seguinte pseudocódigo:

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

Agora, você pode implementar esse pseudocódigo em sua linguagem de programação favorita.

Relacionado: O que é uma função na programação?

Observação : você também pode encontrar a soma dos primeiros n números naturais usando a seguinte fórmula matemática:

Soma de n números naturais = n * (n + 1) / 2

Usando este método, você pode encontrar a soma em uma etapa sem usar recursão.

Implementação C ++ para encontrar a soma dos primeiros N números naturais usando recursão

Abaixo está a implementação C ++ para encontrar a soma dos primeiros n números naturais usando recursão:

 // 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;
}

Resultado:

 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

Implementação do Python para encontrar a soma dos primeiros N números naturais usando recursão

Abaixo está a implementação do Python para encontrar a soma dos primeiros n números naturais usando recursão:

Relacionado: Programação Dinâmica: Exemplos, Problemas Comuns e Soluções

 # 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))

Resultado:

 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

Implementação C para Encontrar a Soma dos Primeiros Números Naturais Usando Recursão

Abaixo está a implementação em C para encontrar a soma dos primeiros n números naturais usando recursão:

 // 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;
}

Resultado:

 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

Implementação de JavaScript para encontrar a soma dos primeiros N números naturais usando recursão

Abaixo está a implementação de JavaScript para encontrar a soma dos primeiros n números naturais usando recursão:

 // 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>");

Resultado:

 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

Implementação Java para encontrar a soma dos primeiros números naturais N usando recursão

Abaixo está a implementação Java para encontrar a soma dos primeiros n números naturais usando recursão:

Relacionado:O que é uma função recursiva e como você cria uma em 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));
}
}

Resultado:

 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

Saiba mais sobre recursão

O pensamento recursivo é muito importante na programação. Às vezes, a solução recursiva pode ser mais simples de ler do que a iterativa. Você pode resolver muitos problemas como o Problema da Torre de Hanoi, DFS do Gráfico, Cruzamentos de árvore de pedido / pré-pedido / pós-pedido, etc., usando recursão.

A recursão é uma estratégia de resolução de problemas muito poderosa. Hoje em dia também é amplamente utilizado na programação funcional. Você deve saber sobre os fundamentos da recursão e como aplicá-la em seus esforços de programação.