现在的位置: 首页 > 综合 > 正文

大数计算_减法

2013年12月05日 ⁄ 综合 ⁄ 共 608字 ⁄ 字号 评论关闭
/*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;
}

【上篇】
【下篇】

抱歉!评论已关闭.