【问题描述】
编写程序实现两个超长正整数(每个最长80位数字)的减法运算。
【输入形式】
从键盘读入两个整数,要考虑输入高位可能为0的情况(如00083)。
- 第一行是超长正整数A;
- 第二行是超长正整数B;
【输出形式】
输出只有一行,是长整数A减去长整数B的运算结果,从高到低依次输出各位数字。要求:若结果为0,则只输出一个0;否则输出的结果的最高位不能为0,并且各位数字紧密输出。
【输入样例】
234098
134098703578230056
【输出样例】
-134098703577995958
【样例说明】
进行两个正整数减法运算, 234098 -134098703578230056 = -134098703577995958。
查重很严格,千万不要抄
方法一
#include <stdio.h>
#include <string.h>
char s1[1025], s2[1025];
int a[1025], b[1025];
void gjd();
int main()
{
scanf("%s%s", s1, s2);
gjd();
return 0;
}
void gjd()
{
int len = 0;
int l1 = strlen(s1);
int l2 = strlen(s2);
int flag = 0;
if (l1 < l2 || (strcmp(s1, s2) < 0 && l1 == l2)) //比大小
{
flag = 1;
for (int i = l2 - 1; i >= 0; i--) //个位在最前
a[l2 - i - 1] = s2[i] - '0';