题目描述
一个楼梯共有 n 级台阶,每次可以走一级或者两级,问从第 0 级台阶走到第 n 级台阶一共有多少种方案。
输入格式
共一行,包含一个整数 n。
输出格式
共一行,包含一个整数,表示方案数。
数据范围
1≤n≤15
输入样例:
5
输出样例:
8
递归我感觉就是 先找到一个结束条件来终止递归 然后找到一个公共规律写出进行循环就可以了
根据树形结构可知 结束条件是到0
时结束
代码
#include <iostream>
using namespace std;
int tj(int n)
{
int cnt = 0;
if(n == 0) return 1; // 到0节台阶时没有台阶了结束
if(n>=1) // 如果台阶数大于1 就继续递归 (是公共规律)
{
cnt += tj(n - 1);
}
if(n>=2)
{
cnt += tj(n - 2);
}
return cnt;
}
int main()
{
int n;
cin >> n;
cout << tj(n);
return 0;
}