【题目描述】
楼梯有n
(0<n<71)阶台阶,上楼时可以一步上1阶,也可以一步上2阶,也可以一步上3
阶,编程计算共有多少种不同的走法。
【输入】
输入的每一行包括一组测试数据,即为台阶数n
。最后一行为0
,表示测试结束。
【输出】
每一行输出对应一行输入的结果,即为走法的数目。
【输入样例】
1 2 3 4 0
【输出样例】
1 2 4 7
#include <iostream>
using namespace std;
long long a[105];
long long steps(int n){
if(a[n]>0) return a[n];
if(n==1)return 1;
else if(n==2) return 2;
else if(n==3) return 4;
else return a[n] = steps(n-1)+steps(n-2)+steps(n-3);
}
int main(){
int n;
while(cin>>n&&n!= 0){
cout<<steps(n)<<endl;
}
return 0;
}