#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
struct bign{
int a[10030];
int len;
bign(){
memset(a,0,sizeof(a));
len=0;
}
};
bign reve(string a)//对输入的数转化为int型,并进行反转运算
{
bign shu;
shu.len=a.length();
for(int i=0;i<a.length();i++)
shu.a[i]=a[a.length()-i-1]-'0';
return shu;
}
bign print(bign a)//输出运算结果
{
for(int i=0;i<a.len;i++)
cout<<a.a[a.len-i-1];
}
bign jian(bign a,bign b)//默认a的长度大于b
{
int arry=0;
bign c;
for(int i=0;i<a.len;i++){
if(a.a[i]<a.a[i]){
a.a[i]+=10;
a.a[i+1]-=1;
}
c.a[c.len++]=a.a[i]-b.a[i];
}
while(c.len-1>=1&&c.a[c.len-1]==0)
c.len--;
return c;
}
int main()
{
string a,b;
cin>>a>>b;
bign a1=reve(a);
bign a2=reve(b);
print(jian(a1,a2));
}
高精度减法
最新推荐文章于 2024-01-22 12:32:17 发布