神偷喵星人
时空要求: 1000(ms) 10000(kb)
Mzx0821家里养的有一只猫,那只猫不是一般的猫,是只智商极高的猫,在没养那只猫之前,Mzx0821是家里最能偷吃东西的,经常半夜起来偷吃。但是只从那只猫来了之后,Mzx0821发现四条腿比两条腿强太多了,简直溜的飞起,就跟家里多养了一个贼一样。那只猫能自己开门,自己开冰箱,最蛋疼的是Mzx0821正在吃饭的时候,只要一个晃神,那猫嗖的一声就跳桌子上咬着肉就狂奔,简直欲哭无泪。 还好Mzx0821还养的有一只狗,每次只要猫一得手,狗就在后面追,然后猫就开始上楼,为什么呢,因为Mzx0821家的狗是不敢上楼的。于是那只猫一上楼就开始得瑟,一步两步,一步两步,一步一步似爪牙,似魔鬼的步伐,似魔鬼的步伐。 Mzx0821观察了许多,发现那只猫每次最多只能跳三个台阶,Mzx0821想知道那只猫有多少种走法可以走完整个楼梯。
输入
(多组测试数据)
每行一个整数N(1<=N<=100000)代表一共有N阶台阶
输出
每行输出对应一个输入数据,输出一个整数,表示总共有多少种走法。由于数据过大,要求结果对23333333取余数。
样例输入
1
2
3
样例输出
1
2
4
1
#include<stdio.h>
int main()
{
int a[100005];
int n,i;
a[1]=1;
a[2]=2;
a[3]=4;
while(scanf("%d",&n)!=EOF)
{
for(i=4;i<=n;i++)
{
a[i]=a[i-1]+a[i-2]+a[i-3];
if(a[i]>=23333333)
{
a[i]=a[i]%23333333;
}
}
printf("%d\n",a[n]);
}
return 0;
}