一道递归简单题

zhengguoshan 2005-02-27 10:12:09
用递归求 1。数祖a[n]中的最大值,
2。求数祖a[n]中所有值的和。
...全文
212 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
linhai1978 2005-02-28
  • 打赏
  • 举报
回复
什么题目呀,书上都是这种题目啊
llf_hust 2005-02-28
  • 打赏
  • 举报
回复
int Sum(int a[], int n)
{
if (n>0)
return a[n-1] + sum(a,n-1);
else
return 0;
}

int Max(int a[],int n)
{
int temp;
if (n == 1)
return a[0];
temp = Max(a, n-1);
if(a[n-1] > temp)
return a[n-1];
else
return temp;
}
javaNO1 2005-02-28
  • 打赏
  • 举报
回复
/* 用递归求 1.数祖a[len]中的最大值,
2.数祖a[len]中所有值的和。*/


#include <iostream>
using namespace std;

int for_max(int a,int b)
{
return (a>b)?a:b;
}

int max(int *a,int len)
{

if(len>1)
return for_max(max(a,len-1),a[len-1]);
return a[0];


/*********************************
if(len>1)
if( a[len-1] < max(a,len-1 ) )
return max(a,len-1);
else
return a[len-1];
// else
return a[0];
*********************************/
}

int sum(int *a, int len)
{
if(len>0)
return a[len-1] + sum(a,len-1);
// else
return 0;
}

void main()
{
int a[] = {2,8};
int len = sizeof(a) / sizeof(a[0]);
cout<<"sum:"<< sum(a,len)<<endl;
cout<<"max:"<< max(a,len)<<endl;

}
pcboyxhy 2005-02-28
  • 打赏
  • 举报
回复
出这个题目的人很没水平
Maconel 2005-02-28
  • 打赏
  • 举报
回复
to 楼上的:
因为这是作业嘛。
solarspark 2005-02-28
  • 打赏
  • 举报
回复
这种问题为什么要用递归呢?不明白。
tianhxk 2005-02-28
  • 打赏
  • 举报
回复
说错了,不好意思
tianhxk 2005-02-28
  • 打赏
  • 举报
回复
求最大值时最好二分,会提高效率
zxh998 2005-02-28
  • 打赏
  • 举报
回复
偶也会啊!!!!!!
wytianjiao 2005-02-27
  • 打赏
  • 举报
回复
template<class T>
T Mmax(T a[],int n)
{
if(n>2)
return max(Mmax(a,n-1),a[n-1]);
return 0;
}
T max(a,b)
{
return (a>b)?a:b;
}

这是最大值,这个还没来得及编译,要熄灯了,明天继续,呵呵
wytianjiao 2005-02-27
  • 打赏
  • 举报
回复
template<class T>
T Sum(T a[],int n)
{
if(n>0)
return Sum(a,n-1)+a[n-1];
return 0;
}

这是求和的……

64,691

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧