免费赠送的干货代码!还不快快复制一份!!!
//
//Created by Carlgood.
//
//Note:This program is written in version DEV-C++ 5.11.
# include <iostream>
# include<cmath>
# include<string>
# include<cstring>
# include<cstdio>
# include<algorithm>
# include<sstream>
# include<vector>
# define This_program_is_written_by_Carlgood_Programming_Studio 9876543210
using namespace std;
const int N=1e6+10;
int c[N],d[N],he[N];
string max1(string a,string b)
{
if(a.size()>b.size()){return a;}
if(b.size()>a.size()){return b;}
if(a>b){return a;}
if(b>a){return b;}
}
string min1(string a,string b)
{
if(a.size()<b.size()){return a;}
if(b.size()<a.size()){return b;}
if(a<b){return a;}
if(b<a){return b;}
}
int main()
{
//freopen("plus.in","w",stdin);
//freopen("plus.out","r",stdout);
string a,b;
cin>>a>>b;
if(a.find("-")==string::npos&&b.find("-")==string::npos)
{
int j=0,i,m,t=0;
int la=a.size(),lb=b.size();
if(a=="0"&&b=="0")
{
cout<<"0";
return 0;
}
for(i=la-1;i>=0;i--)
{
j++;
c[j]=a[i]-'0';
}
j=0;
for(i=lb-1;i>=0;i--)
{
j++;
d[j]=b[i]-'0';
}
m=max(la,lb)+1;
for(i=1;i<=max(la,lb)+1;i++)
{
he[i]=(c[i]+d[i]+t)%10;
t=(c[i]+d[i]+t)/10;
}
int h=max(la,lb)+1;
for(i=h;i>=1;i--)
{
if(he[i]!=0)
{
h=i;
break;
}
}
for(i=h;i>=1;i--)
{
cout<<he[i];
}
}
if(a.find("-")==string::npos&&b.find("-")!=string::npos||a.find("-")!=string::npos&&b.find("-")==string::npos)
{
string ka=max1(a,b),kb=min1(a,b);
int j=0,i;
bool f;
int la=ka.size(),lb=kb.size();
if(ka.find("-")!=string::npos)
{
ka.erase(ka.begin());
la--;f=1;
}
if(kb.find("-")!=string::npos)
{
kb.erase(kb.begin());
lb--;f=0;
}
string maxn=max1(ka,kb);
if(maxn==ka&&f==1||maxn==kb&&f==0)
{
cout<<"-";
}
if(ka==kb)
{
cout<<"0";
return 0;
}
for(i=la-1;i>=0;i--)
{
j++;
c[j]=ka[i]-'0';
}
j=0;
for(i=lb-1;i>=0;i--)
{
j++;
d[j]=kb[i]-'0';
}
int k=0;
for(i=1;i<=la;i++)
{
int t=c[i]-k-d[i];
if(t<0)
{
he[i]=c[i]-k+10-d[i];
k=1;
}
else
{
he[i]=c[i]-k-d[i];
k=0;
}
}
for(i=la;i>=1;i--)
{
if(he[i]!=0)
{
la=i;
break;
}
}
for(i=la;i>=1;i--)
{
cout<<he[i];
}
}
if(a.find("-")!=string::npos&&b.find("-")!=string::npos)
{
a.erase(a.begin());
b.erase(b.begin());
int j=0,i,m,t=0;
int la=a.size(),lb=b.size();
if(a=="0"&&b=="0")
{
cout<<"0";
return 0;
}
for(i=la-1;i>=0;i--)
{
j++;
c[j]=a[i]-'0';
}
j=0;
for(i=lb-1;i>=0;i--)
{
j++;
d[j]=b[i]-'0';
}
m=max(la,lb)+1;
for(i=1;i<=max(la,lb)+1;i++)
{
he[i]=(c[i]+d[i]+t)%10;
t=(c[i]+d[i]+t)/10;
}
int h=max(la,lb)+1;
for(i=h;i>=1;i--)
{
if(he[i]!=0)
{
h=i;
break;
}
}
cout<<"-";
for(i=h;i>=1;i--)
{
cout<<he[i];
}
}
return 0;
}