#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <string.h>
#include <algorithm>
#include <math.h>
#include <limits.h>
#include <queue>
#define inf 0x3f3f3f3f
#define MAXM 200005
using namespace std;
const double pi=3.141592653589793239,e=2.7182818284590452354;
int main(int argc, char** argv) {
int a[1010]={0},b[1010]={0};
char c[1010],d[1010];
int i,j,ch=0,m,flag=0;
cin>>c>>d;
for(i=0;i<strlen(c);i++)
a[strlen(c)-i-1]=c[i]-'0';
for(i=0;i<strlen(d);i++)
b[strlen(d)-i-1]=d[i]-'0';
m=max(strlen(c),strlen(d));
for(i=m-1;i>=0;i--)
{
if(a[i]<b[i])
{
flag=1;
break;
}
if(a[i]>b[i])
break;
}
if(i==-1) cout<<0;
if(flag)
{
cout<<'-';
for(i=0;i<m;i++)
{
int tmp=b[i]-a[i]-ch;
ch=0;
while(tmp<0)
{
tmp+=10;
ch+=1;
}
a[i]=tmp;
}
}
else
{
for(i=0;i<m;i++)
{
int tmp=a[i]-b[i]-ch;
ch=0;
while(tmp<0)
{
tmp+=10;
ch+=1;
}
a[i]=tmp;
}
}
for(j=m-1;j>=0;j--)
if(a[j]!=0) break;
for(i=j;i>=0;i--)
cout<<a[i];
cout<<endl;
return 0;
}
高精度减法
最新推荐文章于 2024-02-10 10:07:15 发布