建议降黄
查看原帖
建议降黄
725816
Perfect_Youth楼主2025/2/2 13:37

rt.

这种弱智题评蓝?我都切了不绿,切了蓝,就是一个等差数列啊。

代码实现也很简单吧。

#include <bits/stdc++.h>
#define getchar()(p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1 , 1 << 21, stdin), p1 == p2) ? EOF : *p1++)
char buf[1 << 21], *p1 = buf, *p2 = buf;

using namespace std;

inline
int read() {
	int x = 0, f = 1;
	char ch = getchar();
	while (ch < '0' || ch > '9') {
		if (ch == '-') f = -1;
		ch = getchar();
	}
	while (ch >= '0' && ch <= '9') {
		x = (x << 1) + (x << 3) + (ch ^ '0');
		ch = getchar();
	}
	return x * f;
}

int t, n, cnt;

int main() {
	t = read();
	while (t--) {
		n = read();
		cnt = 0;
		if (n == 1) {
		    puts("3 4");
		    continue;
		}
		for (int i = 3; i <= n; i++) {
			int tmp = 1, q = i - 1;
			while (tmp < n) {
				tmp += q;
				q += (i - 2);
			}
			if (tmp == n) {
				printf ("%d ", i);
				cnt++;
			}
			if (cnt == 2) break;
		}
		if (!cnt) {
			printf ("Poor%d\n", n);
			continue;
		}
		puts("");
	}
	return 0;
}
2025/2/2 13:37
加载中...