题目:一个台阶有n级,一次只能跳1级或者2级,求有多少种跳法;
当 n = 1 时,有一种跳法;
当 n = 2 时,有两种跳法;
当 n > 2 时,f(n-1)+ f(n-2);
当每次选择跳1级或2级时,都对后面的跳法产生影响;
long long Fibonacci(int n)
{
int result[3] = {0,1,2}; // n 为 0,1,2 时候的解
if(n<=2)
{
return result[n];
}
return Fibonacci(n-1)+Fibonacci(n-2);
}
通过递推的方法得出结果
第n项: n = (n-1) + (n-2);
long long Fibonacci(int n)
{
int dp[3] = {1,1}; // 前两个数
for(i = 2;i<=n;i++) // 递推,求出第n项数的大小
{
dp[2] = dp[0] + dp[1];
dp[0] = dp[1];
dp[1] = dp[2];
}
}