加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 大数据 > 正文

51nod 1005 大数加法

发布时间:2021-01-08 23:49:05 所属栏目:大数据 来源:网络整理
导读:#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;
	}
}

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读