首页 > 解决方案 > 无法理解递归

问题描述

int fun(int a[],int n)
{
  int x;
  if(n == 1)
    return a[0];
  else
    x = fun(a, n - 1);
  if(x > a[n - 1])
    return x;
  else
    return a[n - 1];
}

我无法理解此递归的功能。如果有人可以举例说明。

标签: c++recursion

解决方案


就是下面的递归关系

  • 大小为 1 的数组的最大元素是第一个(也是最后一个!)元素。
  • 大小 > 1 的数组的最大元素是
    • 不包括最后一个元素的子数组的最大元素
    • 最后一个元素

推荐阅读