递归算法介绍

大多选手都知道,递归是第一道槛,如果不通过这道槛,那么你以后差不多就没法学了。
所以,递归很重要。
什么是递归呢?
程序调用自身的编程技巧称为递归。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
例如【P1427】小鱼的数字游戏,怎样用递归倒序输出呢?

#include<iostream>
using namespace std;
void f(){
    int n;
    cin>>n;
    if (n==0) return ;
    f();
    cout<<n<<" ";
}
int main(){
    f();
    return 0;
} 

这个程序,每调用一次自己就会开辟一个空间,假设输入三个数2 1 0,那么过程如下图:
这里写图片描述
一定要注意的是,上面的n必须得设定成局部变量,不然n的值每次都会更新。
递归就介绍到这,后期还会继续更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值