使用高精度为什么不行?求助!!
查看原帖
使用高精度为什么不行?求助!!
583284
Wshape1楼主2022/8/10 22:11

在自己的devc++是可以正常通过样例,而到luogu样例都没过。这是为什么啊?
比较位数,如果相等则从最大位开始比较

#include <iostream>

using namespace std;

const int N = 110;

int arr[N], maxp[N];	// arr临时 [1, ..] //maxp[0]为数字的位数 + 1
int n, id;

int main() {

	cin >> n;
	(void)getchar();  // 吃掉输入n后的\n
	for (int i = 1; i <= n; i++) {
		int m = 1;
		char ch;
		while ((ch = getchar()) != '\n' && ch != ' ') {
			arr[m++] = ch - '0';  //读入
		}

		bool preWin = true; // maxp不需要替换则true
		if (m == maxp[0]) {
			for (int k = 1; k < m; k++) {
				if (maxp[k] > arr[k]) {
					break;
				} else if (maxp[k] < arr[k]) {
					preWin = false;
					break;
				}

			}
		}
		if (maxp[0] < m || !preWin) {
			maxp[0] = m;
			id = i;
			for (int j = 1; j < m; j++)
				maxp[j] = arr[j];
		}
	}

	cout << id << endl;
	for (int i = 1; i < maxp[0]; i++)
		cout << maxp[i];

	return 0;
}

2022/8/10 22:11
加载中...