51nod 1005 大数加法
发布时间:2021-01-09 14:22:25 所属栏目:大数据 来源:网络整理
导读:#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; } } (编辑:上饶站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |