目录
变态跳台阶
上楼梯的同学,每次可以走一个台阶,也可以走两个台阶,现在有N个台阶,请问有多少种不同的方法(先爬1阶再爬2阶和先爬2阶再爬1阶是不同的方法)。
Input
每行一个N(N<=25),代表有N个台阶。
Output
输出不同的方法数。
Sample Input
1
2
3
Sample Output
1
2
3
【分析】
如果只有1级台阶,显然只有一种跳法。如果有2级台阶,显然有两种跳的方法。
现在我们来讨论一般情况。我们把n级台阶时的跳法看成是n的函数,记为f(n)。当n>2时,第一次跳的时候就有两种不同的选择:一是第一次只跳1级,此时跳法数目等于后面剩下的n-1级台阶的跳法数目,即为f(n-1);另外一种选择是第一次跳2级,此时跳法数目等于后面剩下的n-2级台阶的跳法数目,即为f(n-2)。因此n级台阶时的不同跳法的总数f(n)=f(n-1)+(f-2)。
【分析】
#include <bits/stdc++.h>
using namespace std;
int main()
{
int f[