#include <stdio.h>
#include <string.h>
#define Max 505
int flag = 1;
int len_a, len_b;
void sub(int x[], int y[])
{
int i, len;
if(flag == 0)
{
printf("-");
len = len_b;
}
else
len = len_a;
for(i = 0; i < len; i++)
{
x[i] -= y[i];
if(x[i] < 0)
{
x[i] += 10;
x[i + 1]--;
}
}
i = len - 1;
while(x[i] == 0)
i--;
for(;i >= 0; i--)
printf("%d", x[i]);
}
int main()
{
char A[Max], B[Max];
int a[Max] = {0}, b[Max] = {0};
scanf("%s %s", A, B);
len_a = strlen(A);
for(int i = 0; i <= len_a - 1; i++)
a[i] = A[len_a - 1 - i] - '0';
len_b = strlen(B);
for(int i = 0; i <= len_b - 1; i++)
b[i] = B[len_b - 1 - i] - '0';
if(len_a < len_b)
{
flag = 0;
sub(b, a);
}
else if(len_a == len_b)
{
flag = 1;
for(int i = 0; i < len_a; i++)
if(A[i] < B[i])
{
flag = 0;
break;
}
if(flag == 0)
sub(b, a);
else
printf("0");
}
else
{
flag = 1;
sub(a, b);
}
return 0;
}
高精度运算之减法
最新推荐文章于 2023-01-09 11:20:05 发布