大整數,二維數組打表
同hdu 1041題類似,直接改了模板
直接求會超內存
#include<cstdio>
#include<cstring>
#include <iostream>
using namespace std;
const int mod=100000;
int a[7500][410];
void fun()//打表
{
a[1][1]=1;
a[2][1]=1;
a[3][1]=1;
a[4][1]=1;
int tmp;
for(int i=5; i<7500; i++)
{
tmp=0;
for(int j=1; j<410; j++)
{
tmp+=a[i-1][j]+a[i-2][j]+a[i-3][j]+a[i-4][j];
a[i][j]=tmp%mod;
tmp/=mod;
}
}
return ;
}
int main()
{
fun();
int n,i;
while(~scanf("%d",&n))
{
i=409;
while(a[n][i]==0) i--;
printf("%d",a[n][i--]);
for(; i>0; i--)
printf("%05d",a[n][i]);
printf("\n");
}
return 0;
}