【C系列4.11】函数训练之爬楼梯 1979
Time Limit: 1 s Memory Limit: 32 MB
Submission:104 AC:90 Score:20.31
Description
cyn小朋友今天学会了如何爬楼梯,但她腿太短了,能走的步数不多,你能帮她算算他的走法总共有几种吗?假设有h个楼梯,一次只能走一步或者两步或者三步,求总共有几种不同的方法
Input
第一行输入一个整数T,代表有几组测试数据。
接下来每行输入一个整数h(less than 30),代表有几个楼梯。
Output
输出有几种方法。
Samples
input:
3
10
20
30
output:
274
121415
53798080
下附AC代码:
#include<stdio.h>
int steps(int n);
int main() {
int n, s, t;
scanf("%d", &t);
while (t--) {
scanf("%d", &n);
s = steps(n);
printf("%d\n", s);
}
return 0;
}
int steps(int n) {
if (1 == n)
return 1;
if (2 == n)
return 2;
if (3 == n)
return 4;
return steps(n - 1) + steps(n - 2) + steps(n - 3);
}