HDOJ 1002

#include <iostream>
#include <string.h>

using namespace std;

char s1[1100];
char s2[1100];
int a[1100];
int b[1100];
int sum[1100];


int main()
{
    int loop;
    cin>>loop;
for(int lbs=0;lbs<loop;lbs++)
{

    int lens1=0,lens2=0;
    int i,j;

    memset(s1,-1,sizeof(s1));
    memset(s2,-1,sizeof(s2));
    memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    memset(sum,0,sizeof(sum));

    cin>>s1>>s2;

       for(i=0;s1!='\0';i++)
        lens1=i;

 //   cout<<"s1 NO:"<<lens1<<endl;

    for(i=0;s2!='\0';i++)
        lens2=i;

 //   cout<<"s2 NO:"<<lens2<<endl;

    j=0;
    for(i=lens1;i>=0;i--)
        a[j++]=s1-48;
 //   cout<<j<<endl;

    j=0;
    for(i=lens2;i>=0;i--)
        b[j++]=s2-48;
 //   cout<<j<<endl;

/*
    for(i=0;i<=lens1;i++)
        cout<<a;
    cout<<endl;
    for(i=0;i<=lens2;i++)
        cout<<b;
    cout<<endl;
*/
    int c=0;
    for(i=0;i<1100;i++)
    {
        int m=a+b+c;
        c=m/10;
        sum=m%10;
    }

    int k=0;
    for(i=1099;i>=0;i--)
        if(sum!=0)
        {
            k=i;
            break;
        }

cout<<"Case "<<lbs+1<<":\n";
     for(i=0;i<=lens1;i++)
        cout<<s1;
     cout<<" + ";
     for(i=0;i<=lens2;i++)
        cout<<s2;
     cout<<" = ";
     for(j=k;j>=0;j--)
        cout<<sum[j];
    if((lbs+1)!=loop)
     cout<<endl<<endl;
    else
        cout<<endl;
}


    return 0;
}

大精度加法运算;
结尾只能有一个空格!!!! 

原文地址:https://www.cnblogs.com/CKboss/p/3351149.html