高精度減法

#include<bits/stdc++.h>
using namespace std;
const int maxn=10005;
int a[maxn],b[maxn],c[maxn],ans[maxn];
int lena,lenb,lenans;
void read(int *a,int &len){
	string s;
	cin>>s;
	len=s.length();
	for(int i=0;i<len;i++)a[i]=s[i]-48;
	reverse(a,a+len);
}
int main(){
	read(a,lena);
	read(b,lenb);
	lenans=max(lena,lenb);
	for(int i=0;i<=lenans;i++){
		ans[i]=a[i]-b[i]-c[i];
		if(ans[i]<0){
		ans[i]+=10;
		c[i+1]+=1;	
		}
	}
	while(ans[lenans]>0)lenans++;
		for(int i=lenans-1;i>=0;i--)
	cout<<ans[i];
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章