hdu1002A + B Problem II

来源:互联网 发布:微信小程序 php后端 编辑:程序博客网 时间:2024/06/06 09:09

题目: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;
}

原创粉丝点击