nyoj_114_某种序列_201403161700
2014-03-16 17:49
393 查看
某种序列
时间限制: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
来源水题比赛中较不水的上传者hzyqazasdf
分析:sum=a+b+c;a=b;b=c;c=sum;
#include <stdio.h> #include <string.h> #define MAX 1010 int a[MAX],b[MAX],c[MAX],sum[MAX]; void init(int x,int *a) { int i=0; while(x) { a[i++]=x%10; x/=10; } } int main() { int aa,bb,cc; while(scanf("%d %d %d",&aa,&bb,&cc)!=EOF) { int i,j,t; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); init(aa,a);init(bb,b);init(cc,c); /*if(aa==0&&bb==0&&cc==0) { printf("0\n"); continue; }*/ //for(i=0;i<10;i++) //printf("%d %d %d ",a[i],b[i],c[i]); for(i=3;i<=99;i++) { memset(sum,0,sizeof(sum)); for(j=0;j<MAX;j++) { sum[j]+=(a[j]+b[j]+c[j]); if(sum[j]>9) { t=sum[j]; sum[j]=t%10; sum[j+1]=t/10; } } for(j=0;j<MAX;j++) { a[j]=b[j]; b[j]=c[j]; c[j]=sum[j]; } } for(j=MAX-1;j>0&&sum[j]==0;j--); for(;j>=0;j--) printf("%d",sum[j]); printf("\n"); } return 0; } //ac
//大数问题
相关文章推荐
- nyoj--114--某种序列(滚动数组)
- nyoj 114 某种序列 【java大数】
- nyoj--114--某种序列(滚动数组)
- NYOJ 114 某种序列 【大数问题】
- NYOJ 114 某种序列
- NYOJ 114-某种序列
- NYOJ 题目114 某种序列(大数)
- NYOJ 114 某种序列
- nyoj114 某种序列(大数)
- NYOJ 114 某种序列(大数加)
- nyoj114某种序列(大数)
- NYOJ 114 某种序列(java)
- nyoj 114 某种序列
- NYOJ 114 某种序列
- NYOJ-114 某种序列
- nyoj 某种序列 114 (大数&&滚动数组) 好题
- nyoj114某种序列
- 某种序列(nyoj 114)
- NYOJ——114题某种序列