
输入样例
5 1 3 2 5 3
输出样例
max(1,3)=3 max(3,2)=3 max(3,5)=5 max(5,3)=5 5
说来惭愧第一次写递归的题
还是花了点时间理解
代码
#include<iostream>
using namespace std;
int max(int x, int y)
{
if (x >= y) return x;
else return y;
}
int arraymax(int a[], int n)
{
if (n == 0) return a[0];
else
{
int m = arraymax(a, n - 1);
printf("max(%d,%d)=%d ", m, a[n], max(m, a[n]));
m = max(m, a[n]);
return m;
}
}
int main()
{
int n;
cin >> n;
int a[100];
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
int Max;
Max = arraymax(a, n-1);
cout << Max;
return 0;
}
本文介绍了一个使用递归算法求解整数数组中最大值的C++实现。通过逐步分解问题并比较子数组的最大值,最终得到整个数组的最大值。文章提供了完整的代码示例,并展示了如何使用递归函数来解决此类问题。
4514

被折叠的 条评论
为什么被折叠?



