【正确答案】本题属于简单的分治法的递归实现,关于递归和分治法相关问题请看《数据结构高分笔记》中的特别章讲解:考研中某些算法的分治法解释。
实现代码如下:
int maxdata(int R[],int n) //求R[0]到R[n]共n+1个元素中的最大值
{
int m;
if(n==0)
return R[0];
else
{
m=maxdata(R,n-1);
if(R[n]>m)
return R[n];
else
return m;
}
}
int sum(int R[],int n) //求R[0]到R[n]共n+1个元素之和
{
if(n==0)
return R[0];
else
return(R[n]+sum(R,n-1));
}
double avg(int R[],int n) //求R[0]到R[n]共n+1个元素的平均值
{
if(n==0)
return R[0];
else
return(R[n]+n*avg(R,n-1))/(n+1);
}
【答案解析】