C与python的递归函数:青蛙跳台阶的递归练习

一、概念:

函数调用函数本身,这就是递归调用。

递归函数,是将大问题分割成相同的小问题来一次进行解决。

递归函数:

        <1>.递归函数要有结束条件,否则函数无限次的调用下去,会把内存资源耗尽,会出现堆栈溢出,导致段错误。

        <2>.每递归一次,都要向结束条件靠近。

 二、时间复杂度计算

每递归一次的时间复杂度* 递归的次数

三、递归的使用场景

递归函数的优点:代码量小,并且非常简单。但是有的递归函数会对时间和空间造成很大影响,所以使用递归的场景为:

        <1>.你可以想的到使用递归

        <2>.不会对时间和空间,造成太大影响

四、C程序中的递归练习:青蛙跳台阶

青蛙跳台阶,共有10阶台阶,青蛙每次可以选择跳一阶或者两阶,

问:青蛙跳上这10个台阶共有多少种跳法。

代码如下:

#include<stdio.h>

//计算跳上第n阶 有几种跳法
//返回值:跳法的多少
int func(int n){
    //递归的出口
    if(n == 1){
        return 1;
    }
    if(n == 2){
        return 2;
    }
    return func(n-1) + func(n-2);
}               
int main(int argc, const char *argv[])
{
    int ret = 0;
    ret = func(10); 
    printf("%d\n",ret); //89          
    return 0;
}

五、python的递归函数练习:青蛙跳台阶

代码如下:

//python中的函数无需定义类型限制
def frog(n):
    if n == 1:
        return 1
    if n == 2:
        return 2
    return frog(n-1) + frog(n-2)

# 有参函数的调用
sum = frog(10)
print("sum = ", sum) #89
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值