一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
(斐波那契数列的变形)
F(1)=1;F(2)=2;
F(n)=F(n-1)+F(n-2);
class Solution { public:int jumpFloor(int number) {if(number<=0) return 0;if(number==1||number==2)return number;else return jumpFloor(number-1)+jumpFloor(number-2);} };
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法.
(这个解法记不太清楚了)
但是直接分析也可以解出来,n个台阶
F(n)=1+F(n-1)+F(n-2)+````+F(1);
1次跳n阶,最后一次跳1个,对应就是F(n-1),最后一次跳2个,对应就是F(n-2)·····
class Solution { public:int jumpFloorII(int number) {int* array1=new int[number];array1[0]=1;array1[1]=2;for(int i=2;i<number;i++){int j=0,temp=0;while(j<i){temp+=array1[j++];}array1[i]=temp+1;}return array1[number-1];} };