aula 161

Como somar os elementos de um vetor com recursão?

Na aula de hoje vamos aprender como somar os elementos de um vetor com recursão. Já vimos que somar os elementos de um vetor com uma repetição é bastante simples, bastando percorrer todas as posições do vetor acumulando a soma dos seus valores. Somar os elementos de um vetor com recursão também é simples, desde que você tenha entendido corretamente como identificar o caso base para uma função recursiva.

Para identificar o caso base pense o seguinte. Qual o resultado do somatório dos elementos de um vetor vazio?

Zero certo?

Imagine que o usuário pode chamar sua função passando um vetor vazio. Dessa forma, se o tamanho do vetor for igual a zero, então retornamos zero.

Mas, se o tamanho for diferente de zero (estamos assumindo que nunca receberemos um tamanho negativo) então retornaremos a soma do elemento da posição tam – 1 (lembre-se que não existe a posição tam no vetor) mais a chamada recursiva passando como parâmetros o vetor e tam – 1. Perceba que em algum momento o tamanho será zero.

Na função main chamamos a função soma dentro de um printf para imprimir na tela o resultado da soma.

/*
        Aula 161: Faça uma função recursiva para calcular a soma de todos os valores de um vetor de inteiros.

        Escrito por Wagner Gaspar
        Março de 2021
*/

int soma(int v[], int tam){
    if(tam == 0) // caso base, vetor vazio
        return 0;
    else
        return v[tam - 1] + soma(v, tam - 1); // chamada recursiva
}

int main () {

    int vet[10] = {1,2,3,4,5,6,7,8,9,10};

    printf("Soma: %d\n", soma(vet, 10));

    return 0;
}

Este post tem 2 comentários

Deixe um comentário

20 + dezesseis =

Wagner Gaspar

Capixaba de São Gabriel da Palha, Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal do Amazonas e mestre em informática pela Universidade Federal do Espírito Santo.