【尾递归】找出N个数中的最大值

描述

RT,要求用递归完成。

输入第一行是一个整数n
第二行是n个整数输出最大值所在位置及其值,用空格隔开样例输入

6
1 2 3 4 5 6

样例输出

6 6

使用尾递归实现,倒着判断。

#include <iostream>
#include <string>
#include <climits>
using namespace std;
int pos;
int mmax = INT_MIN;
void get_max(int x, int a[])
{
  if (x == 0)
    return;
  if (a[x] > mmax)
  {
    mmax = a[x];
    pos = x;
  }
  get_max(x - 1, a);
}
int main()
{
  int n, a[100000];
  cin >> n;
  for (int i = 1; i <= n; i++)
    cin >> a[i];
  get_max(n, a);
  cout << pos << " " << mmax << endl;
  return 0;
}

 

 

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注

4 + 15 =