问题 D: 某种序列

题目描述

数列A满足An = An-1 + An-2 + An-3, n >= 3 
编写程序,给定A0, A1 和 A2, 计算A99

输入

输入包含多行数据 
每行数据包含3个整数A0, A1, A2 (0 <= A0, A1, A2 <= 100000000) 
数据以EOF结束

输出

对于输入的每一行输出A99的值

样例输入

1 1 1

样例输出

69087442470169316923566147
 1     #include<stdio.h>  
 2     #include<string.h>  
 3     #define base 100000000  
 4     int a[100][100];  
 5       
 6     void f(int i,int n)  
 7     {  
 8         a[i][1]=n;  
 9     }  
10       
11     int main()  
12     {  
13         int i,j,len,t1,t2,t3,temp,jw;  
14         while(~scanf("%d%d%d",&t1,&t2,&t3))  
15         {  
16             if(t1==0&&t2==0&&t3==0)  
17                 printf("0");  
18             else  
19             {  
20                 memset(a,0,sizeof(a));  
21                 f(0,t1);  
22                 f(1,t2);  
23                 f(2,t3);//转为数组存数  
24                 len=1;  
25                   
26                 for(i=3;i<=99;i++)  
27                 {  
28                     jw=0;  
29                     for(j=1;j<=len;j++)  
30                     {  
31                         temp=a[i-1][j]+a[i-2][j]+a[i-3][j]+jw;  
32                         a[i][j]=temp%base;  
33                         jw=temp/base;  
34                         if(j == len && jw != 0)  
35                         len++;  
36                     }  
37                 }  
38                 i=len;  
39                 printf("%d",a[99][i--]);  
40                 for(;i>=1;i--)  
41                 printf("%08d",a[99][i]);  
42             }  
43             printf("\n");  
44         }  
45         return 0;  
46     }
View Code

 

posted on 2016-08-19 17:00  椿和湫  阅读(162)  评论(0编辑  收藏  举报

导航