微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

大数计算_减法

/*limit:a>b>0*/
#include<iostream>
#include<string>
using namespace std;

string sub(string a,string b)
{
	int len_a=a.size(),len_b=b.size();
	string c;
	int len_c=0;
	bool flag=false;
	while(len_b>0){
		if(flag)a[len_a]=a[--len_a]-1;
		else len_a--;
		char temp=a[len_a]-b[--len_b];
		if(temp<0){temp+=58;flag=true;}
		else {temp+=48;flag=false;}
		c+=temp;
	    len_c++;
	}
	while(len_a>0){
		if(flag)a[len_a]=a[--len_a]-1;
		else len_a--;
		if(a[len_a]<48){a[len_a]+=10;flag=true;}
		else flag=false;
		c+=a[len_a];
		len_c++;
	}
	while(len_c>1&&c[len_c-1]==48)len_c--;
	string sum;
	for(int i=--len_c;i>=0;i--)
		sum+=c[i];
	return sum;
}
void main()
{
	string a,b;
	while(cin>>a>>b)
		cout<<sub(a,b)<<endl;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐