51nod 1005 大数加法
发布时间:2021-01-10 08:30:29 所属栏目:大数据 来源:网络整理
导读:#include bits/stdc++.husing namespace std;string sum(string s1,string s2){int i,laz=0;string ret=string(10005,'0');for(i=10005-1;i=0;i--){ret[i]=s1[i]+s2[i]-'0'+laz;if(ret[i]'9'){ret[i]-=10;laz=1;}elselaz=0;}return ret;}string opp(string s
|
#include <bits/stdc++.h>
using namespace std;
string sum(string s1,string s2)
{
int i,laz=0;
string ret=string(10005,'0');
for(i=10005-1;i>=0;i--)
{
ret[i]=s1[i]+s2[i]-'0'+laz;
if(ret[i]>'9')
{
ret[i]-=10;
laz=1;
}
else
laz=0;
}
return ret;
}
string opp(string s)
{
for(int i=10005-1;i>=0;i--)
s[i]='9'-s[i]+'0';
s=sum(s,string(10005-1,'0')+'1');
return s;
}
int main()
{
int n,i,p;
string a,b,ans;
while(cin>>a>>b)
{
ans=string(10005,'0');
if(a[0]=='-')
{
a=string(10005-a.length()+1,'0')+a.substr(1);
a=opp(a);
}
else
a=string(10005-a.length(),'0')+a;
if(b[0]=='-')
{
b=string(10005-b.length()+1,'0')+b.substr(1);
b=opp(b);
}
else
b=string(10005-b.length(),'0')+b;
ans=sum(a,b);
if(ans[0]=='9')
{
cout<<'-';
ans=opp(ans);
}
p=ans.find_first_not_of('0');
if(p==-1)
cout<<'0'<<endl;
else
cout<<ans.substr(p)<<endl;
}
}
(编辑:清远站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

