某种序列
时间限制:
3000 ms | 内存限制:65535 KB
难度:
4
-
描述
-
数列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
-
#include<iostream> #include<stdio.h> #include<string.h> using namespace std; int main() { int aa[5]; while(scanf("%d %d %d",&aa[1],&aa[2],&aa[3])!=EOF) { int l,s,p,i,j; int a[110][1010]={0}; for(i=1;i<=3;i++) { j=1; while(aa[i]) { a[i][j++]=aa[i]%10; aa[i]/=10; } } s=0,p=0; for(i=4;i<=100;i++) for(j=1;j<=1000;j++) { s=a[i-1][j]+a[i-2][j]+a[i-3][j]+p; a[i][j]=s%10; p=s/10; } for(i=1010;i>=1;i--) if(a[100][i]!=0) break; if(i==0) printf("0"); else for(i;i>=1;i--) printf("%d",a[100][i]); printf("\n"); } return 0; }