小算法---递归

首先,先理解 return 的作用

  1. 有返回值的函数:结束函数,返回一个值
  2. 没有返回值的函数:结束函数

1. n+n-1+...+2+1

int recur(int n) {
    
    if (n == 1)                // 终止条件
    {
        return 1;
    }
    
    int res = recur(n - 1);   // 递:递归调用
    
    return n + res;           // 归:返回结果
}

会用到栈(stack),栈是一种数据结构 ,只能从表结构的一端来存取,所以表现为“先进后出”。如果没有返回值,会把函数压入栈中;如果有返回值,栈中函数会依次得到返回值从而被相继释放。

小算法---递归_第1张图片

你可能感兴趣的:(算法,c++)