#include<stdio.h>#include<string.h>#include "fstream"using namespace std;ifstream fin("read.txt");ofstream fout("result1.txt");void zero(char *ch, int len){int i;for(i=0; i<len; ++i){ch[i] -= ‘0‘;}}int main(){char a[1000], b[1000];char c[1002];int alen, blen, i, j, k, T, m=1, yes;//scanf("%d",&T);fin>>T;getchar();while( T-- ){//scanf("%s", &a);//scanf("%s", &b);fin>>a>>b;//printf("Case %d:\n", m++);//printf("%s + %s = ", a, b);fout<<"Case %d:"<<endl<<m++<<a<<" + "<<b<<" = ";alen = strlen(a);blen = strlen(b);for(i=0; i<1002; ++i){c[i] = 0;}zero(a, alen);zero(b, blen);k = yes = 0;for(i=alen-1, j=blen-1; (i>=0)&&(j>=0); ++k, --i, --j ){if( (a[i]+b[j]+c[k]) >= 10 ){c[k+1] = 1;}c[k] = (a[i]+b[j]+c[k])%10 ;}for( ; i>=0; ++k, --i){if( a[i]+c[k] >=10 ){c[k+1] = 1;}c[k] = (a[i]+c[k])%10;}for( ; j>=0; ++k, --j){if( b[j]+c[k] >=10 ){c[k+1] = 1;}c[k] = (b[j]+c[k])%10;}if( c[k]==0 ){--k;}for(i=k; i>=0; --i){if( c[i] !=0 ){yes = 1;break;}}if( yes!=0 ){for(; k>=0; --k){//printf("%d", c[k]);fout<<c[k];}}else{//printf("0");fout<<"0";}if( T!=0 ){//printf("\n\n");;fout<<endl<<endl;}else{//printf("\n");fout<<endl;}}return 0;}
原文:http://www.cnblogs.com/sober-reflection/p/bab7914b01809729a42d3d17089ba91e.html