Problem Description
设整数序列a1,a2,...,an,给出求解最大值的递归程序。
Input
有多组数据,每组第一行为序列长度n(0<n<50),第二行为该整数序列的各元素。
Output
输出该整数序列中的最大值。
Sample Input
5 -2 4 10 2 3 5 8 1 -1 6 5
Sample Output
10 8
#include <iostream>
#include <vector>
using namespace std;
int getMax ( int data[], int begin ,int end )
{
if ( begin == end ) return data[begin];
int a = getMax (data,begin,(begin+end)/2) ;
int b = getMax ( data,(begin+end)/2+1,end );
return a>b?a:b;
}
int main ()
{
int data[50],n;
while(cin>>n){
for(int i=0;i<n;i++)
{
cin>>data[i];
}
cout << getMax (data,0, n-1 ) << endl;
}
return 0;
}