hdoj1002

来源:互联网 发布:2015中国造船数据分析 编辑:程序博客网 时间:2024/05/21 10:39

还是菜鸟啊,而且自己经常马虎,做题的时候老是考虑不周全,导致好多错误啊!

 

#include<iostream>
#include<string>
using namespace std;
int main()
{
  int n,m,t,s,i,j,k,p,c[1005];
  char a[1005],b[1005];
  cin>>n;
  for(p=1;p<=n;p++)
  {
        if(p!=1)
            cout<<endl;
        cin>>a>>b;
        cout<<"Case "<<p<<":"<<endl;
        cout<<a<<" + "<<b<<" = "; 
        m=strlen(a);
        t=strlen(b);
        if(m>t)
               s=m;
        else
               s=t;
        for(i=0;i<m;i++)
              a[i]=a[i]-'0';
        for(i=0;i<t;i++)
              b[i]=b[i]-'0';
        for(i=0;i<=s;i++)
              c[i]=0;
         i=m-1;j=t-1;k=s;
         for(;(i>=0)&&(j>=0);k--)
         {
               if(c[k]+a[i]+b[j]<=9)
                  c[k]+=a[i]+b[j];
               else
               {
                    c[k]=(c[k]+a[i]+b[j])%10;
                    c[k-1]++;
                }
               i--;
               j--;
         }
         while(i>=0)  
         {
            if(c[k]+a[i]>9) 
                {c[k]=(c[k]+a[i])%10;c[k-1]++;}
            else
                 c[k]=c[k]+a[i];
            k--;i--;
         }
          while(j>=0) 
           {
              if(c[k]+b[j]>9) 
                {c[k]=(c[k]+b[j])%10;c[k-1]++;}
              else
                c[k]=c[k]+b[j];
               k--;j--;
            } 
           if(c[0]!=0)
               cout<<"1";
           for(i=1;i<=s;i++)
              cout<<c[i];
              cout<<endl;
    }
  return 0; 
}

原创粉丝点击