Problem Description
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
Mentality
当台阶数是1时,只能有跳1阶这1种跳法;当台阶数是2时,有跳2次1阶、跳1次2阶这2种跳法;当台阶数是3时,若第一步跳1阶,则还剩2阶,就有2种跳法,若第一步跳2阶,则还剩1阶,就只有1种跳法,总共就是3种跳法,即前两种台阶数的情况之和。以此类推,n为台阶数,则f(n)为对应的跳法,有f(n)=f(n-1)+f(n-2),即本题是斐波那契数列的应用。只不过一开始的项是1和2。
Code (C++)
class Solution {
public:
int Fibonacci(int n) {
if(number<=2)
return number;
int ans(0),temp1(1),temp2(2);
for(int i=2; i<number; i++){
ans=temp1+temp2;
temp1=temp2;
temp2=ans;
}
return ans;
}
};
已通过所有的测试用例,欢迎指正批评(´▽`ʃ♡ƪ)