蒜头爬楼梯
这一节我们需要讨论的是一个递推的问题。在计算理工学院有一个长腿君,他在爬楼梯的时候从来都是要么上 22 个台阶,要么上 33 个台阶。由于爬楼梯实在太无聊了,长腿君就开始尝试每天采用不同的方式上楼梯。如果长腿君回家需要爬 NN 阶台阶,你能告诉长腿君,他爬楼梯回家有多少种不同的方式吗?
请注意,长腿君“先爬 33 个台阶后爬 22 个台阶”和“先爬 22 个台阶后爬 33 个台阶”是两种不同的回家方式。
输入格式
测评机会反复运行你的程序。每次程序运行时,你的程序仅需输入一个符合描述的整数 NN,表示总共的台阶数(2 \leq N \leq 502≤N≤50)。
输出格式
输出为一行,输出一个整数,表示长腿君有多少种上楼梯的方式。最后结果保证在 int 范围内。
样例输入1
5
样例输出1
2
样例输入2
40
样例输出2
31572
通过的代码
#include <stdio.h>
int n, a[ 100 ];
int main() {
int n;
int step[51];
scanf("%d",&n);
step[1] = 0;
step[2] = step[3] = 1;
for (int i = 4; i <=n; i++){
step[i] = step[i-2] + step[i-3] ; }
printf("%d",step[n]);
return 0;
}