SOURCE: 点击打开链接
代码:
#include <iostream>
#include <cstring>
using namespace std;
int main(void)
{
string str1,str2;
int a[1200];
int t,j,k,len1,len2;
cin>>t;
for(int j=1; j<=t; j++)
{
memset(a,0,sizeof(a));
k=0;
cin>>str1>>str2;
len1=str1.length()-1;
len2=str2.length()-1;
while(len1>=0&&len2>=0)
{
if(a[k]+(str1[len1]-'0')+(str2[len2]-'0')>=10)
{
a[k]=a[k]+(str1[len1]-'0')+(str2[len2]-'0')-10;
a[k+1]++;
}
else
a[k]=a[k]+(str1[len1]-'0')+(str2[len2]-'0');
k++;
len1--;
len2--;
}
if(len1>=0)
{
while(len1>=0)
{
if(a[k]+(str1[len1]-'0')>=10)
{
a[k]=a[k]+(str1[len1]-'0')-10;
a[k+1]++;
}
else
a[k]=a[k]+(str1[len1]-'0');
k++;
len1--;
}
}
else if(len2>=0)
{
while(len2>=0)
{
if(a[k]+(str2[len2]-'0')>=10)
{
a[k]=a[k]+(str2[len2]-'0')-10;
a[k+1]++;
}
else
a[k]=a[k]+(str2[len2]-'0');
k++;
len2--;
}
}
if(a[k]>0)
k++;
cout<<"Case "<<j<<":"<<endl;
cout<<str1<<" + "<<str2<<" = ";
for(int i=k-1; i>=0; i--)
cout<<a[i];
cout<<endl;
if(j!=t)
cout<<endl;
}
return 0;
}