题目描述
这一节我们需要讨论的是一个递推的问题。在海贼理工学院有一个路飞君,他在爬楼梯的时候从来都是要么上 2 个台阶,要么上 3 个台阶。由于爬楼梯实在太无聊了,路飞君就开始尝试每天采用不同的方式上楼梯。如果路飞君回家需要爬 N 阶台阶,你能告诉路飞君,他爬楼梯回家有多少种不同的方式吗?
请注意,路飞君“先爬 3 个台阶后爬 2 个台阶”和“先爬 2 个台阶后爬 3 个台阶”是两种不同的回家方式。
输入
测评机会反复运行你的程序。每次程序运行时,你的程序仅需输入一个符合描述的整数 N , 表示总共的台阶数( 2≤N≤50 )。
输出
输出为一行,输出一个整数,表示路飞君有多少种上楼梯的方式。最后结果保证在 int范围 内。
样例输入1
5
样例输出1
2
样例输入2
40
样例输出2
31572
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int num[55] = { 0,0,1,1 };
for (int i = 4; i <= n; i++) {
num[i] = num[i - 2] + num[i - 3];
}
cout << num[n] << endl;
return 0;
}