0
点赞
收藏
分享

微信扫一扫

青蛙跳台阶的递归详解

hoohack 2022-05-05 阅读 195
c语言

题目:

一只青蛙想要到第N个台阶上,它可以选择一次跳一级台阶或一次跳二级台阶,请问青蛙要到N级台阶上,请问有几种跳法

解题思路:

我们设台阶数位N;
当N=1时,当然只有一种跳法
当N=2时,青蛙有二种跳法:可以一层层跳和一次跳二层
当N=3时,青蛙有三种跳法:
如果青蛙先选择先跳1层,剩下2层台阶,剩下就是第二层台阶时的跳法,所以3层台阶时的方法是:2层台阶的方法 + 1层台阶的方法。
当N=4时,青蛙有五种跳法:具体方法为: 1、先跳1层 若先跳1层,则剩下3层,接下来就是3层台阶的跳法。 2、先跳2层 若先跳2层,则剩下2层,接下俩就是2层台阶的跳法,所以4层台阶的方法为:3层台阶的方法+2层台阶的方法。
总结:
当青蛙想到第N个台阶时,有第N-1层方法+N-2层方法
公式:N = (N-1)+(N-2)

代码实现:

递归方法

int Recu(int n)
{
    if (n == 1)
    {
        return 1;
    }
    else if (n == 2)
    {
        return 2;
    }
    else
        return Recu(n - 1) + Recu(n - 2);
}
int main()
{
    int n;
    scanf("%d", &n);
    int ret = Recu(n);
    printf("%d\n", ret);
    return 0;
}
举报

相关推荐

0 条评论