题目描述
一个楼梯共有n级台阶,每次可以走一级或者两级,问从第0级台阶走到第n级台阶一共有多少种方案。
感受
跳台阶:可以跳一节或者两节,也就是有两种可能性,向上跳,可以逆向看,向下跳,如果只有一节台阶,只有一种情况;如果只有两节台阶,就有两种情况。对于n节台阶,可以将其划分为无数个一节台阶或者两节台阶的子问题,最后将先跳一节台阶和先跳两节台阶的情况相加即可。
#include<iostream>
using namespace std;
int jump(int n){
if(n==1)return 1;
if(n==2)return 2;
return jump(n-2)+jump(n-1);
}
int main()
{
int n;
cin>>n;
cout<<jump(n);
return 0;
}