题目地址:http://oj.cust.edu.cn/problem/101
题目:
描述
有一天,TanYz闲得慌,决定去南研楼爬楼梯(减肥)。
对于爬楼梯,TanYz每走1步有3种走法,1种为1步跨1层台阶,1种为1步跨2层台阶,1种为1步跨3层台阶。
费尽力气爬到十二楼的TanYz思考了一会,如果南研楼有一共有n层台阶,他会有多少种方式从底层爬到最顶层呢?
输入
输入含多组数据。 每组数据一行,一个整数n,表示南研楼台阶数(1 <= n <= 50)
输出
每组数据输出1行。 如果南研楼有一共有n层台阶,爬到最顶层的不同方案数。
输入样例 1
4 5 6 10
输出样例 1
7 13 24 274
代码:
#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
int main()
{
int n;
long long int a[100];
a[1]=1;a[2]=2;a[3]=4;
for(int i=4;i<=100;i++)
{
a[i]=a[i-1]+a[i-2]+a[i-3];
}
while(scanf("%d",&n)!=EOF)
{
cout<<a[n]<<endl;
}
return 0;
}