题目描述
该题目本质上是斐波那契数列.
由于最后一次只有两种选择:
设:有n节台阶:有f(n)中上法
上一格:距离最后一节台阶,还有1节,那么就是第 n - 1 节台阶,那么到达该阶就有f(n - 1)
种上法,在该情况下上最后一节台阶只有一种方法.
上两格:同上到达该阶台阶也有f(n - 2)中方法,到下一个台阶也之后一种方法.
f(n) = f(n - 1) + f(n - 2)
这刚好符合斐波那契的递归规律.
所以直接用第斐波那契来做.
算法1
C++ 代码
#include <iostream>
using namespace std;
int f(int n)
{
if (n == 1) return 1;
if (n == 2) return 2;
else return f(n - 1) + f(n - 2);
}
int main()
{
int n;
cin >> n;
cout << f(n) << endl;
return 0;
}