http://acm.nyist.net/JudgeOnline/problem.php?pid=114
#include<stdio.h>
#include<string.h>
#define base 100000000
int a[100][100];
void f(int i,int n)
{
a[i][1]=n;
}
int main()
{
int i,j,len,t1,t2,t3,temp,jw;
while(~scanf("%d%d%d",&t1,&t2,&t3))
{
if(t1==0&&t2==0&&t3==0)
printf("0");
else
{
memset(a,0,sizeof(a));
f(0,t1);
f(1,t2);
f(2,t3);//转为数组存数
len=1;
for(i=3;i<=99;i++)
{
jw=0;
for(j=1;j<=len;j++)
{
temp=a[i-1][j]+a[i-2][j]+a[i-3][j]+jw;
a[i][j]=temp%base;
jw=temp/base;
if(j == len && jw != 0)
len++;
}
}
i=len;
printf("%d",a[99][i--]);
for(;i>=1;i--)
printf("%08d",a[99][i]);
}
printf("\n");
}
return 0;
}