Faça uma função recursiva que permita calcular a média um vetor de tamanho
.
Passo 1
O problema pede uma função recursiva que calcule a média de um vetor de tamanho
. Para isso vamos usar o conceito de média aritmética e de recursão, definindo um caso base simples e um passo recursivo que reduza o problema de tamanho
para
.
Passo 2
Definimos a média dos primeiros
elementos como
Seja
a média dos primeiros
elementos; então o somatório desses é
. Acrescentando o elemento
, a soma dos
elementos fica
e a média recursiva satisfaz
O caso base é
.
Passo 3
Traduzindo essa ideia para C, temos:
double media(int v[], int n) {
if (n == 1) {
return v[0];
}
return (((n - 1) * media(v, n - 1)) + v[n - 1]) / (double)n;
}
Resposta
double media(int v[], int n) {
if (n == 1) {
return v[0];
}
return (((n - 1) * media(v, n - 1)) + v[n - 1]) / (double)n;
}