Problem 56: 某种序列(大数加法+数列)
发布时间:2020-12-14 03:54:24 所属栏目:大数据 来源:网络整理
导读:/*************************************************************************Problem 56: 某种序列Time Limit:3 Ms| Memory Limit:128 MBDifficulty:2Description数列A满足An = An-1 + An-2 + An-3,n = 3 编写程序,给定A0,A1 和 A2,计算A99Input输入包含
/************************************************************************* Problem 56: 某种序列 Time Limit:3 Ms| Memory Limit:128 MB Difficulty:2 Description 数列A满足An = An-1 + An-2 + An-3,n >= 3 编写程序,给定A0,A1 和 A2,计算A99 Input 输入包含多行数据 每行数据包含3个整数A0,A1,A2 (0 <= A0,A2 <= 100000000) 数据以EOF结束 Output 对于输入的每一行输出A99的值 Sample Input 1 1 1 Sample Output 69087442470169316923566147 Source water problem ************************************************************************/ /************************************************************************* 解题分析: * 类似fibonacci数列;0 <= A0,A2 <= 100000000, 输出位数最多69087442470169316923566147; * 特殊情况:0 0 0 * 要点:字符窜处理 ************************************************************************/ #include <stdio.h> #include <string.h> #define M 150 char a[M],b[M],c[M]; int da[M],db[M],dc[M]; int sum[M]; void switch_str(char m[],int n[]) { int i,len=strlen(m); int j=0; for(i=len-1; i>=0; i--) { n[j++] = m[i] - '0'; } } void add(int m[],int n[],int l[]) { int i; for(i=0; i<M; i++) { sum[i] = m[i] + n[i] +l[i]; } int c = 0; for(i=0; i<M; i++) { sum[i] += c; c = sum[i]/10; sum[i] %= 10; } } void swap(int all[],int u[],int v[],int w[]) { int i; for(i=0; i<M; i++) { w[i] = v[i]; v[i] = u[i]; u[i] = all[i]; } } int main(void) { int i,j; while(~scanf("%s%s%s",a,b,c)) { if(!strcmp(a,"0") && !strcmp(b,"0") && !strcmp(c,"0")) { printf("0n"); continue; } memset(da,sizeof(da)); memset(db,sizeof(db)); memset(dc,sizeof(dc)); memset(sum,sizeof(sum)); switch_str(a,da); switch_str(b,db); switch_str(c,dc); for(j=3; j<100; j++) { add(da,db,dc); swap(sum,da,dc); } for(i=M; i>=0; i--) { if(da[i] != 0) { break; } } while(i>=0) { printf("%d",da[i--]); } puts(""); } return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |