90分求助
查看原帖
90分求助
1089623
aouyou楼主2024/10/28 21:50

第六个测试点过不去,测试数据是两个相同的三千多位的数,输出结果是0,但是我的程序什么也不输出,是为什么呢???

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#include <cmath>
#include <algorithm>
using namespace std;
string a, b;
int x[100100], y[100100];
int s[100100];
long long cnt1 = 1, cnt2 = 1,ans,flag,n1, n2,cnt,i;
int main()
{
	cin >> a >> b;
	if (a.length()<b.length()||(a.length() == b.length() && atoi(a.c_str()) < atoi(b.c_str())))
	{
		flag = 1;
		swap(a, b);
	}
	n1 = a.length();
	n2 = b.length();
	for (i = n1 - 1; i >= 0; i--)
	{
		x[cnt1] = a[i] - '0';
		cnt1++;
	}
	for (i = n2 - 1; i >= 0; i--)
	{
		y[cnt2] = b[i] - '0';
		cnt2++;
	}
	for (i = 1; i < max(cnt1, cnt2); i++)
	{
		if (x[i] - y[i] < 0)
		{
			x[i] += 10;
			x[i + 1]--;
		}
		s[i] = x[i] - y[i];
	}
	cnt = max(cnt1, cnt2) - 1;
	while (s[cnt] == 0 && cnt >= 1)cnt--;
	if (flag == 1)cout << "-";
	for (i = cnt; i >= 1; i--)
	{
		cout << s[i];
	}
	return 0;
}
2024/10/28 21:50
加载中...