题目:hdu1002
总结:本题之所以会WA几次,是由于没有把 system("pause"); 删除,这是应该注意的地方。虽然杭电等网站支持system,
但是程序会运行到这句话,就会出现wrong answer,因此,一般要把这句话删除再提交。
代码:
//You may assume the length of each integer will not exceed 1000.
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n;
char a[1005],b[1005];
int c[1010];
int i,j,k,flag,flag1;
cin>>n;
getchar();
for(int cnt=1;cnt<=n;cnt++)
{
cin>>a>>b;
flag=0;flag1=0;
if(strlen(a)<strlen(b))
{
char temp[1005];
strcpy(temp,a);
strcpy(a,b);
strcpy(b,temp);
flag=1;
}
memset(c,0,sizeof(c));k=0;
for(i=strlen(a)-1,j=strlen(b)-1;j>=0;i--,j--)
{
c[k]+=a[i]-'0'+b[j]-'0';
if(c[k]>=10)
{c[k+1]+=c[k]/10;c[k]%=10;k++;}
else k++;
}
for(i=strlen(a)-strlen(b)-1;i>=0;i--)
{
c[k]+=a[i]-'0';
if(c[k]>=10)
{c[k+1]+=c[k]/10;c[k]%=10;k++;}
else k++;
}
cout<<"Case "<<cnt<<':'<<endl;
if(flag==0)cout<<a<<" + "<<b<<" = ";
else cout<<b<<" + "<<a<<" = ";
while(c[k]==0)k--;
for(i=k;i>=0;i--)
{ cout<<c[i];flag1=1;}
if(flag1==0)cout<<"0";
cout<<endl;
if(cnt<n)cout<<endl;
}
return 0;
}