#include <stdio.h>
#include <string.h>
#define max 10000
char s1[max], s2[max];
int a[max], b[max], len, len1, len2, i;
void sub();
int main(void)
{
scanf("%s %s", s1, s2);
len1 = strlen(s1);
len2 = strlen(s2);
if(len1 > len2 || (len1 == len2 && strcmp(s1,s2) > 0))
{
//s1的数大
len = len1;
for(i = 0; i < len1; i++)
a[i] = s1[len1 - i - 1] - '0';
for(i = 0; i < len2; i++)
b[i] = s2[len2 - i - 1] - '0';
sub();
}
else
{
// s2的数大
printf("-");
len = len2;
for(i = 0; i < len1; i++)
b[i] = s1[len1 - i -1] - '0';
for(i = 0; i < len2; i++)
a[i] = s2[len2 - i -1] - '0';
sub();
}
return 0;
}
void sub()
{
for(i = 0; i < len; i++)
{
if(a[i] < b[i])
{
a[i + 1]--;
a[i] += 10;
}
a[i] -= b[i];
}
while(!a[len - 1])
len--;
for(i = len - 1; i >= 0; i--)
printf("%d",a[i]);
}
高精度减法 — C语言
最新推荐文章于 2023-12-16 13:32:39 发布