为什么一个也过不了呀,我是从csdn学的,而且测数据也是对的,在这里是错的但
查看原帖
为什么一个也过不了呀,我是从csdn学的,而且测数据也是对的,在这里是错的但
1581659
yangyiqun111楼主2024/12/9 22:26
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int len;
char a[10090], b[10090], c[10090];
int A[10090] = { 0 }, B[10090] = { 0 }, C[10090] = { 0 };
int len1, len2;


void sub()
{
	for (int i = 0; i < len; i++)
	{
		if (A[i] < B[i])
		{
			A[i + 1]--;
			A[i] += 10;
		}
		C[i] = A[i] - B[i];
	}
	while (C[len] == 0 && len > 0) len--;
	for (int i = len; i >= 0; i--)
	{
		printf("%d", C[i]);
	}
}


int main()
{
	gets(a);
	gets(b);
	len1=strlen(a);
	len2=strlen(b);
	if (len1 > len2 || (len1 == len2 && strcmp(a, b)))
	{
		len = len1;
		for (int i = 0; i < len1; i++)
		{
			A[i] = a[len1 - i-1] - '0';
		}
		for (int i = 0; i < len2; i++)
		{
			B[i] = b[len2 - i-1] - '0';
		}
		sub();
	}
	else
	{
		printf("-");
		len=len2;
		for (int i = 0; i < len1; i++)
		{
			A[i] = a[len1 - i] - '0';
		}
		for (int i = 0; i < len2; i++)
		{
			B[i] = b[len2 - i] - '0';
		}
		sub();
	}
	return 0;
}
2024/12/9 22:26
加载中...