斐波那契数列相关题目

一个青蛙一次可以跳上一级台阶,也可以跳上2级,求该青蛙跳上一个n级的台阶总共有几种跳法?

青蛙有两种选择:一是再跳一级到达第n级阶梯,此时小青蛙处于第n-1级阶梯,再或者跳两级阶梯到达第n级阶梯,此时小青蛙处于n-2级阶梯

于是n级阶梯的台阶的跳法总是依赖于前n-1阶台阶的跳法总数f(n-1)和前n-2级阶梯的跳法总数f(n-2),因为只有两种可能f(n)=f(n-1)+f(n-2).这就是熟悉的斐波那契数列求和。青蛙一级有一种跳法,二级有两种跳法,三级有三种跳法

class Solution {
public:
    int jumpFloor(int number) {
       int i=1,j=2;
        int c;
        if(number<=0) return 0;
        if(number==1) return 1;
        if(number==2) return 2;
        for(int l=3;l<=number;l++)
        {
            c=i+j;
            i=j;
            j=c;
            
        }
        return c;
    }
};

 

posted @ 2020-03-13 13:48  PD_Ming  阅读(494)  评论(0编辑  收藏  举报