使用递归求解顺序表的平均值,将数据划分为两部分,当前位置的值和前面所有位置的数据和的和除以当前的数据个数,递归将问题不断缩小,划分为子问题,从表首开始向后求解
float AvgNumR(int* list, int n) //求平均值
{
assert(list);
assert(n >= 0);
if (n == 0)
return list[n];
return (AvgNumR(list,n-1)*n + list[n]) / (n+1);
//当前的平均值
}
其他一些顺序表地递归的操作:https://github.com/Mjianjianjiao/Arithmetic_Practice