测试点6错误,问题出在哪?求大佬救救
  • 板块P2142 高精度减法
  • 楼主PYTX
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/11/27 00:29
  • 上次更新2024/11/27 13:38:44
查看原帖
测试点6错误,问题出在哪?求大佬救救
1535497
PYTX楼主2024/11/27 00:29
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
char s1[100000]; char s2[100000]; char s3[100000];
int a[100000]; int b[100000]; int c[100000];
bool compare(char s1[], char s2[]) {
	int u = strlen(s1); int v = strlen(s2);
	if (u != v)return u > v;
	for (int i = 0; i < u; i++) {
		if (s1[i] != s2[i])return s1[i] > s2[i];
	}
	return true;
}
int max(int a, int b) {
	return (a > b) ? a : b;
}
int main() {
    int la,lb,lc;
	int flag=0;
	scanf("%s", s1); scanf("%s", s2);
	if (!compare(s1, s2)) {
		flag = 1;
		strcpy(s3 ,s1);
		strcpy(s1, s2);
		strcpy(s2, s3);
	}
	 la = strlen(s1);  lb = strlen(s2);
	for (int i = 0; i < la; i++) {
		a[la-i] = s1[i] - '0';
	}
	for (int i = 0; i < lb; i++) {
		b[lb - i] = s2[i] - '0';
	}
	 lc = max(la, lb);
	for (int i = 1; i <= lc; i++) {
		if (a[i] < b[i]) {
			a[i + 1] -=1;
			a[i] += 10;
		}
		c[i] = a[i] - b[i];
	}
	if (c[lc] == 0 && lc > 1)lc--;
	if (flag == 1)printf("-");
	for (int i = lc; i > 0; i--) {
		printf("%d", c[i]);
	}
	return 0;
}
2024/11/27 00:29
加载中...