题解 | #优美数字#
优美数字
https://ac.nowcoder.com/acm/contest/50846/A
本题解是给平常编程习惯不好的同学们提个醒。
这道题我用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;
}