题目描述
楼梯有 n 个台阶,上楼可以一步上一阶、一步上两阶,也可以一步上三个台阶。一共有多少种上楼的方法?
输入格式
输入一个整数 n(0 < n \le 50)n(0<n≤50)。
输出格式
输出上到第 n 级台阶一共有多少种方法。
输入输出样例
输入 #1
4
输出 #1
7
说明/提示
上第一级台阶的方案数为 11,上第二级台阶的方案数为 22,上第二级台阶的方案数为 44。
上到第 ii 级台阶的方案数 = 上到第 i-1i−1 级台阶的方案数 + 上到第 i-2i−2 级台阶的方案数 + 上到第 i-3i−3 级台阶的方案数,通过递推的方法可求出上到第 nn 级楼梯的方案数。
#include<bits/stdc++.h>
using namespace std;
long long a[55];
int main() {
int n;
cin>>n;
a[1]=1,a[2]=2,a[3]=4;
for(int i=4;i<=n;i++){
a[i]=a[i-1]+a[i-2]+a[i-3];
}
cout<<a[n];
return 0;
}