SDNUOJ—1083.爬楼梯
Description
WZ是个蛋痛的人,总是喜欢琢磨蛋痛的事,比如他最近想知道上楼梯总共有多少种方式。已知他一步可以迈一阶、两阶或者三阶,现在给你楼梯的阶数,让你计算总共有多少种方式。
Input
输入有多组数据,每组数据占一行,表示楼梯的阶数。(1<=N<=35)
Output
对于每组数据,输出一行,表示上楼方式的总数。
Sample Input
1
2
Sample Output
1
2
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<queue>
#include<vector>
#include<set>
using namespace std;
#define ll long long
int main()
{
ll n;
ll zhan1=1,zhan2=2,zhan3=4;
ll sum;
while(~scanf("%lld",&n))
{ sum= 0;
if(n==1||n==2) sum = n;
if(n==3) sum = 4;
else
{
for(int i = 4;i<=n;i++)
{
sum = zhan1+zhan2+zhan3;
zhan1=zhan2;
zhan2=zhan3;
zhan3=sum;
}
zhan1=1;zhan2=2;zhan3=4;
}
cout<<sum<<'\n';
}
return 0;
}