本题不需要考虑 0000+0001 这种前置0的加法,难度不大,细节较多,。
#include<iostream>
#include<string>using namespace std;
string strPlus(string s1,string s2);
int main(){
int n=0;
cin>>n;
string a,b;
for(int i=1;i<=n;i++)
{
cin>>a>>b;
cout<<"Case "<<i<<":"<<endl;
cout<<a+" + "<<b<<" = "<<strPlus(a,b)<<endl;
if(i!=n)
cout<<endl;
}
}
string strPlus(string s1,string s2)
{
string res="";
int carry =0;
int i=s1.length()-1,j=s2.length()-1;
while(i>=0||j>=0||carry!=0)
{
int value=0;
if(i>=0)
{
value+=s1[i]-'0';
i--;
}
if(j>=0)
{
value+=s2[j]-'0';
j--;
}
value+=carry;
carry=value/10;
res.insert(res.begin(),value%10+'0');
}
return res;
}