您的位置:首页 > 其它

nyoj114某种序列(大数)

2015-03-07 22:11 225 查看

某种序列

时间限制: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<stdio.h>#include<string.h>int a[40],b[40],c[40];int add(int a[],int b[],int c[]){for(int i=0;i<40;i++){a[i]=a[i]+b[i]+c[i];a[i+1]+=a[i]/10;a[i]=a[i]%10;}}int main(){int A0,A1,A2;int i;while(scanf("%d%d%d",&A0,&A1,&A2)!=EOF){i=0;memset(a,0,sizeof(a));memset(b,0,sizeof(b));memset(c,0,sizeof(c));while(A0||A1||A2){a[i]=A0%10;A0=A0/10;b[i]=A1%10;A1=A1/10;c[i]=A2%10;A2=A2/10;++i;}for(i=3;i<99;i+=3){add(a,b,c);add(b,a,c);add(c,a,b);}add(a,b,c);i=39;while(i>0&&a[i]==0)--i;if(i==0){printf("%d\n",a[0]);continue;}for(;i>=0;--i)printf("%d",a[i]);printf("\n");}return 0;} 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: