描述
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; }