Soma dos Primeiros N Números com Recursão

CBeginner
Pratique Agora

Introdução

Neste laboratório, aprenderemos como usar recursão para encontrar a soma dos primeiros N números. Usaremos a linguagem de programação C para escrever um programa que recebe uma entrada do usuário, calcula a soma dos primeiros N números e exibe o resultado para o usuário. Recursão é uma técnica usada em programação onde uma função chama a si mesma para resolver um problema.

Criando um arquivo e definindo a função principal

Primeiramente, criaremos um novo arquivo chamado main.c. A função principal recebe uma entrada do usuário para o valor de N, passa essa entrada para a função recursiva de soma e, em seguida, exibe o resultado.

#include<stdio.h>

int getSum(int);

int main()
{
    printf("This program finds the sum of the first N numbers using recursion.\n");

    int n, sum;
    printf("\nEnter the value of N: ");
    scanf("%d", &n);

    sum = getSum(n);

    printf("\nThe sum of the first %d numbers is %d\n", n, sum);

    return 0;
}

Definindo a Função de Soma Recursiva

Nesta etapa, definiremos a função de soma recursiva getSum(). Esta função recebe um parâmetro inteiro n e retorna a soma dos primeiros n inteiros. Esta função é chamada recursivamente até atingirmos um caso em que n é menor ou igual a 0.

int getSum(int n)
{
    static int sum = 0;

    if (n <= 0) {
        return sum;
    }

    sum += n;
    getSum(n-1);
}

A declaração static int sum = 0; é usada para criar uma variável local estática. Como esta é uma recursão, a mesma variável será usada sempre que getSum() for chamada várias vezes.

Executando o código

O programa agora está pronto para ser executado. Compile e execute o programa usando o seguinte comando:

gcc main.c -o main
./main

Listagem Completa do Código

#include<stdio.h>

int getSum(int);

int main()
{
    printf("Este programa encontra a soma dos primeiros N números usando recursão.\n");

    int n, sum;
    printf("\nDigite o valor de N: ");
    scanf("%d", &n);

    sum = getSum(n);

    printf("\nA soma dos primeiros %d números é %d\n", n, sum);

    return 0;
}

int getSum(int n)
{
    static int sum = 0;

    if (n <= 0) {
        return sum;
    }

    sum += n;
    getSum(n-1);
}

Resumo

Neste laboratório, aprendemos como usar recursão em programação C para encontrar a soma dos primeiros N números. Criamos um programa que recebe a entrada do usuário, usa uma função recursiva para calcular a soma dos primeiros N inteiros e exibe o resultado para o usuário.