标签:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1002
简单的高精度加法,没什么说的。
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespace std; char s1[1000],s2[1000]; int lena,lenb,a[1000],b[1000],res[1000]; int main() { int t; scanf("%d",&t); for(int j=1;j<=t;j++) { memset(s1,0,sizeof(s1)); memset(s2,0,sizeof(s2)); memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); scanf("%s %s",s1,s2); lena=strlen(s1); for(int i=0;i<lena;i++) a[i]=s1[lena-i-1]-‘0‘; lenb=strlen(s2); for(int i=0;i<lenb;i++) b[i]=s2[lenb-i-1]-‘0‘; int len=max(lena,lenb),e=0; for(int i=0;i<len;i++) { res[i]=(a[i]+b[i]+e)%10; e=(a[i]+b[i]+e)/10; } printf("Case %d:\n",j); for(int i=lena-1;i>=0;i--) printf("%d",a[i]); printf(" + "); for(int i=lenb-1;i>=0;i--) printf("%d",b[i]); printf(" = "); if(e!=0)printf("%d",e); for(int i=len-1;i>=0;i--) printf("%d",res[i]); printf("\n"); if(j!=t)printf("\n"); } }
标签:
原文地址:http://www.cnblogs.com/xuxueyang/p/4293991.html