题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。
解题思路:当n>2,时青蛙第一步可以选择跳一下,剩下求f(n-1),也可以选择跳两下,剩下求f(n-2),则可以得到f(n)=f(n-1)+f(n-2)
n<=39
解题思路:
逆向思考,先从n=0开始
class Solution {
public:
int Fibonacci(int n) {
int f1=0;
int f2=1;
if(n==0)return 0;
if(n==1)return 1;
for(int i=0;i<n-1;++i)
{
f2=f1+f2;
f1=f2-f1;
}
return f2;
}
};
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
class Solution {
public:
int jumpFloor(int number) {
int f1=1;
int f2=2;
if(number<=0)return 0;
if(number==1)return f1;
if(number==2)return f2;
for(int i=0;i<number-2;++i)
{
f2=f1+f2;
f1=f2-f1;
}
return f2;
}
};
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
class Solution {
public:
int jumpFloorII(int number) {
if(number<=0)
return 0;
else
return pow(2,number-1);
}
};