大数加法

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char a[1000]={'0'},b[1000]={'0'},c[1000]={'0'},bit;
int i,j,count=1,n;
     cin>>n;
     for(int k=0;k<n;k++)
     {
     cin>>a>>b;
        bit='0';
        int min=strlen(b)<strlen(a)?strlen(b):strlen(a);
        int max=strlen(a)>strlen(b)?strlen(a):strlen(b);
if(strlen(a)>strlen(b))
{
for(j=min-1,i=max-1;j>=0;j--,i--)
{
bit=a[i]-'0'+b[j]-'0'+bit;
c[i]=(bit-'0')%10+48;
bit=(bit-'0')/10+48;
}
for(i=strlen(a)-strlen(b)-1;i>=0;i--)
{
bit=a[i]+bit-'0';
c[i]=(bit-48)%10+48;
bit=(bit-48)/10+48;
}
}
else 
{
for(j=min-1,i=max-1;j>=0;j--,i--)
{
bit=a[j]-'0'+b[i]+bit-'0';
c[i]=(bit-'0')%10+48;
bit=(bit-'0')/10+48;
}
for(i=strlen(b)-strlen(a)-1;i>=0;i--)
{
bit=b[i]+bit-'0';
c[i]=(bit-48)%10+48;
bit=(bit-48)/10+48;
}
}
cout <<"case "<<count++<<":\n";
for(i=0;i<strlen(a);i++)
{
cout <<a[i];
}
cout <<" + ";
for(i=0;i<strlen(b);i++)
{
cout <<b[i];
}
cout <<" = ";
if(bit==1)cout<<bit;
for(i=0;i<(strlen(a)>strlen(b)?strlen(a):strlen(b));i++)
{
cout <<c[i];
}
cout <<"\n";
if(k<n-1)cout <<endl;
      }
return 0;
}

你可能感兴趣的:(大数,加法)