递归经典问题—青蛙跳台阶

青蛙跳台阶

有n个台阶,一只青蛙一次可以跳上去俩个或者一个台阶,问跳上第n个台阶有多少种机会

思路

先看个简单的做法找下规律

用递归的思想, 是大事化小

所以当台阶数大于3 时可以将台阶数递到只剩1个或2个也就是

fib(n-1),和fib(n-2)最后在加起来就可以得到总的方法了,当然这看起来很抽象,在看个图相信能有更大的帮助

代码

直接可以照搬

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//青蛙跳台阶
int Fib(int n)
{
    if (n > 2)
    {
        return Fib(n - 1) + Fib(n - 2);
    }
    return n;
}
int main()
{
    int n = 0;
    scanf("%d", &n);
    int ret = Fib(n);
    printf("%d", ret);
    return 0;
}

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值