题目描述
给出两个正整数A和B,计算A-B的值。保证A和B的位数不超过500位。
输入描述
读入两个用空格隔开的正整数
输出描述
输出A-B的值
样例输入
3 12
样例输出
-9
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char a[505],b[505],c[505];
int a1[502],b1[502],c1[502];
int alen,blen,clen,i,temp;
temp=0;
memset(a1,0,sizeof(a1));
memset(b1,0,sizeof(b1));
memset(c1,0,sizeof(c1));
cin >> a >> b;
//gets(a);
//gets(b);
alen=strlen(a);
blen=strlen(b);
if(alen<blen||(alen==blen&&strcmp(a,b)<0))
{
strcpy(c,a);
strcpy(a,b);
strcpy(b,c);
cout<<'-';
}
alen=strlen(a);
blen=strlen(b);
for(i=0;i<alen;i++)
{
a1[alen-1-i]=a[i]-48;
}
for(i=0;i<blen;i++)
{
b1[blen-1-i]=b[i]-48;
}
clen=(alen>blen ? alen : blen);
for(i=0;i<clen;i++)
{
c1[i]=a1[i]-b1[i]-temp;
if(c1[i]<0)
{
temp=1;
c1[i]=c1[i]+10;
}
else
{
temp=0;
}
}
for(i=clen-1;i>=0;i--)
{
if(c1[i]==0)
{
clen-=1;
}
else
{
break;
}
}
for(i=clen-1;i>=0;i--)
{
cout<<c1[i];
}
return 0;
}