太美

202260228abc  •  2年前


include<bits/stdc++.h>

include

include

include<string.h>

include

using namespace std; int Cmp(string add1,string add2) { if(add1.length()!=add2.length())

return add1.length()>add2.length();

return add1>add2; } string Add(string add1,string add2) { string ans(max(add1.size(),add2.size())+1,'0'); for(int i=ans.size()-1,l1=add1.size(),l2=add2.size(); i>=0; i--) {

int t=(ans[i]-'0')+(l1<1?0:add1[--l1]-'0')+
(l2<1?0:add2[--l2]-'0');
ans[i]=t%10+'0';
ans[i-1]=(ans[i-1]-'0'+t/10)+'0';

} for(; ans[0]=='0'&&ans.size()>1; ans.erase(0,1)); return ans; } string Sub(string x,string y) { string ans=""; int i; for(i=y.length(); i<x.length(); i++) y='0'+y; for(i=x.length()-1; i>=0; i--) {

char c=x[i]-y[i]+'0';
if(c<'0')
{
  x[i-1]--;
  c+=10;
}
ans=c+ans;

} return ans; } int main() { string add1,add2; cin>>add1>>add2; bool b1=true,b2=true; if(add1[0]=='-')

add1.erase(0,1),b1=false;

if(add2[0]=='-')

add2.erase(0,1),b2=false;

if(b1==b2) {

if(!b1)
  cout<<'-';
string ans=Add(add1,add2);
for(; ans[0]=='0'&&ans.size()>1; ans.erase(0,1));
cout<<ans<<endl;

} else {

bool b=b1;
if(!Cmp(add1,add2))
  swap(add1,add2),b=b2;
if(!b)
  cout<<'-';
string ans=Sub(add1,add2);
for(; ans[0]=='0'&&ans.size()>1; ans.erase(0,1));
cout<<ans<<endl;

} return 0; }


评论:

include<bits/stdc++.h>

include

include

include<string.h>

include

using namespace std; int Cmp(string add1,string add2) { if(add1.length()!=add2.length())

return add1.length()>add2.length();

return add1>add2; } string Add(string add1,string add2) { string ans(max(add1.size(),add2.size())+1,'0'); for(int i=ans.size()-1,l1=add1.size(),l2=add2.size(); i>=0; i--) {

int t=(ans[i]-'0')+(l1<1?0:add1[--l1]-'0')+
(l2<1?0:add2[--l2]-'0');
ans[i]=t%10+'0';
ans[i-1]=(ans[i-1]-'0'+t/10)+'0';

} for(; ans[0]=='0'&&ans.size()>1; ans.erase(0,1)); return ans; } string Sub(string x,string y) { string ans=""; int i; for(i=y.length(); i<x.length(); i++) y='0'+y; for(i=x.length()-1; i>=0; i--) {

char c=x[i]-y[i]+'0';
if(c<'0')
{
  x[i-1]--;
  c+=10;
}
ans=c+ans;

} return ans; } int main() { string add1,add2; cin>>add1>>add2; bool b1=true,b2=true; if(add1[0]=='-')

add1.erase(0,1),b1=false;

if(add2[0]=='-')

add2.erase(0,1),b2=false;

if(b1==b2) {

if(!b1)
  cout<<'-';
string ans=Add(add1,add2);
for(; ans[0]=='0'&&ans.size()>1; ans.erase(0,1));
cout<<ans<<endl;

} else {

bool b=b1;
if(!Cmp(add1,add2))
  swap(add1,add2),b=b2;
if(!b)
  cout<<'-';
string ans=Sub(add1,add2);
for(; ans[0]=='0'&&ans.size()>1; ans.erase(0,1));
cout<<ans<<endl;

} return 0; }


202260228abc  •  2年前