NOI2.3.3525 上台阶 题解(C++)
题目
3525:上台阶
总Time Limit: 1000ms Memory Limit: 65536kB
Description
楼梯有n阶台阶,上楼时可以一步上1阶,也可以一步上2阶,也可以一步上3阶,编程计算共有多少种不同的走法。
Input
输入的每一行包括一组测试数据,即为台阶数n。最后一行为0,表示测试结束。
Output
每一行输出对应一行输入的结果,即为走法的数目。
Sample Input
1
2
3
4
0
Sample Output
1
2
4
7
注意,n的范围在1~99
思路
这一题的方法有两种,一种是用递归,还有一种是递推的方法,先说说递归吧。
递归解法思路
就是一个函数f(),f(n)可以等于f(n-1)+f(n-2)+f(n-3),这个没有问题吧,我们可以很轻易的写出一小段代码:
int f(int n){
if(n == 1){
return 1;
}else if(n == 2){
return 2;
}else if(n == 3){
return 4;
}else