上一篇我们用的是找规律的方法。

但这个问题本质上是个斐波那契数列问题。

青蛙跳台阶问题2._自定义

所以我们可以用斐波那契函数(本人自定义)来解决这个问题。

//斐波那契之青蛙跳台。

#include<stdio.h>

int fib(int n)

{

    int a=1,b=2,c;//a,b用来作为fib(1)和fib(2)

    if(n==1)

    {

        return 1;

    }

    if(n==2)

    {

        return 2;

    }

    while(n>2)//1 2 3 5 8 13

    {  

        c=a+b;

        a=b;

        b=c;

        n--;

    }

    return c;

}

int main()

{   int n;

    scanf("%d",&n);

    int res=fib(n);

    printf("%d",res);

    return 0;

}