青蛙跳台阶(C语言)

青蛙跳台阶(C语言)

青蛙跳台阶问题,在函数的递归一章中会有提到,不少同学会感觉有些难以下手,下面就让学长带你了解其中的奥秘。

一只青蛙一次可以跳1个台阶或2个台阶,总共有n个台阶,问共有多少种上法?

我们可以从简到难的想,一个台阶有一种上法,俩个台阶有两种上法,三个台阶有三种上法,四个台阶有五种上法……不难发现这有些像Fibonacci数列。

$$ Fib(n)=1,n=1 $$

$$ Fib(n)=2,n=2 $$

$$ Fib(n)=Fib(n-1)+Fib(n-2),n>2 $$

由此,代码如下:

   #include<stdio.h>
   int main()
    {
      int n=0;
       scanf("%d",&n);//输入台阶数
       if(n<4)//n小于4,上法就是台阶数
       {
           printf("%d
",n);
       }
       else
       {//a,b为Fib(3),Fib(4)
        int a=2;int b=3;int t=0;
         for(int i=3;i<n;i++)
         {
           t=a+b;
           a=b;
           b=t;
          }
          printf("%d
",t);
       }
       return 0;
    }

以上就是本期内容了。

经验分享 程序员 微信小程序 职场和发展