#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
struct sz{ //结构体定义
int d[1000];
int len;
sz(){ //初始化结构体
memset(d,0,sizeof(d));
len =0;
}
};
sz fun(char s[]) //将字符串转化为int型存入数组
{
sz a;
a.len=strlen(s);
for(int i=0;i<a.len;i++)
{
a.d[i]=s[a.len-1-i]-'0';
}
return a;
}
int cmp(sz a1,sz a2) //比较输入的两个值得大小
{
if(a1.len >a2.len ) return 1;
else if(a1.len <a2.len ) return -1;
else{
for(int i=a1.len -1;i>=0;i--)
{
if(a1.d[i]>a2.d[i]) return 1;
else if(a1.d[i]<a2.d[i]) return -1;
}
return 1;
}
}
sz sub(sz a1,sz a2) //减法运算
{
sz c;
for(int i=0;i<a1.len ;i++)
{
if(a1.d[i]>=a2.d[i]) c.d[c.len ++]=a1.d[i]-a2.d[i];
else{
a1.d[i]+=10;
a1.d[i+1]--;
c.d[c.len ++]=a1.d[i]-a2.d[i];
}
}
return c;
}
int main()
{
char s1[1000], s2[1000];
while(~scanf("%s %s",s1,s2))
{
sz a1,a2,c;
a1=fun(s1);
a2=fun(s2);
int p=cmp(a1,a2);
if(p==1)
{
c=sub(a1,a2);
}
else
{
c=sub(a2,a1);
}
if(p!=1) printf("-");
int i;
for(i=c.len-1;i>=1;i--) //输出处理
{
if(c.d[i]!=0) break;
}
for(i;i>=0;i--)
printf("%d",c.d[i]);
printf("\n");
}
}
// 多样例输入 a+b
大整数 a-b
最新推荐文章于 2023-01-08 21:42:10 发布