斐波那契数列相关题目
一个青蛙一次可以跳上一级台阶,也可以跳上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; } };