O(∩_∩)O哈哈~轻松过了,感觉超爽~~~大数是有点令人头疼啊……
//#define OJ//搞鬼,vc6不让我定义这个,DEV又有什么木马,被360挡住了……真是纠结……
#include "stdio.h"
#include "string.h"
#define MAX 100000
int mem[4][420];
int tem[420];
int main()
{
#ifdef OJ
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
#endif
int n;
int i,j,k,carry;
while(scanf("%d",&n)==1)
{
memset(mem,0,sizeof(mem));
mem[0][0]=mem[1][0]=mem[2][0]=mem[3][0]=1;
if(n<5)
{
printf("1\n");
continue;
}
k=1;
for(i=0;i<n-4;i++)
{
carry=0;
memset(tem,0,sizeof(tem));
for(j=0;j<k;j++)
{
tem[j]=mem[0][j]+mem[1][j]+mem[2][j]+mem[3][j]+carry;
if(tem[j]>=MAX)
{
carry=tem[j]/MAX;
tem[j]=tem[j]%MAX;
}
else
carry=0;
}
if(carry!=0)
{
tem[k]=carry;
k++;
}
memcpy(mem[i%4],tem,sizeof(int)*420);
}
printf("%d",tem[k-1]);
for(i=k-2;i>=0;i--)
{
printf("%05d",tem[i]);
}
printf("\n");
}
return 0;
}