这种题一看就知道是大数问题,可能需要的是前导‘0’的处理。注意处理格式,这样一般就ac了
#include <iostream>
#include <cstring>
#include <string>
#include <stdio.h>
using namespace std;
string Add(string fNum,string sNum)
{
if( fNum.length() < sNum.length() ) fNum.swap(sNum);
string A = "0";
A += fNum;
for ( int i=1;i<=fNum.length();i++)
if(i<=sNum.length())
A[A.length()-i]+=sNum[sNum.length()-i]-'0';
for( int i=1;i<A.length();i++)
{
if(A[A.length()-i]>'9')
{ A[A.length()-i]-=10;A[A.length()-i-1]+=1; }
}
while(A[0]=='0') A.erase(0,1);
return A;
}
int main ()
{
string a,b;
int t;
cin>>t;
int ncount=1;
int flag=false;
while (t--)
{
cin>>a>>b;
string re=Add(a,b);
if (flag==true)
cout<<endl;
if (flag==false)
{
flag=true;
}
printf("Case %d:\n",ncount++);
cout<<a<<" + "<<b<<" = "<<re<<endl;
}
}