Shirlies
宁静专注认真的程序媛~

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;
}


 

posted on 2012-02-15 16:12  Shirlies  阅读(523)  评论(0编辑  收藏  举报