本题解是给平常编程习惯不好的同学们提个醒。

这道题我用int定义了x来接收数字,并用long long定义了xx,这里xx=x*x

然后就出问题了,样例过了但是后面全wa,我直接???

检查调试了好几遍,输入了一个200002之后调试发现xx错了,看起来是爆int了,关于这一点上学期好像讲过但是我忘了,对于xx=x乘x,是先计算出x乘x的int值,再赋给long long类型的xx,所以爆了。 三年oi一场梦,不开long long见祖宗。

然后就ac了。没什么可讲的。 代码如下:

using namespace std;
int ck[1000004];
long long xx = 0;

int main() {
	int n;
	cin >> n;
	long long x = 0, mi = 0;
	for (int i = 1; i <= n; i++) {
		cin >> x;
		mi = 0;
		xx = x * x;
		while (x != 0) {
			mi = mi * 10 + x % 10;
			x /= 10;
		}
		if (xx % mi == 0) {
			ck[i] = 1;
		}

	}
	for (int i = 1; i <= n; i++) {
		if (ck[i] == 1) {
			cout << "Yes" << "\n";
		} else {
			cout << "No" << "\n";
		}
	}
	return 0;
}