題解 | #優(yōu)美數(shù)字#
優(yōu)美數(shù)字
https://ac.nowcoder.com/acm/contest/50846/A
本題解是給平常編程習(xí)慣不好的同學(xué)們提個(gè)醒。
這道題我用int定義了x來(lái)接收數(shù)字,并用long long定義了xx,這里xx=x*x
然后就出問(wèn)題了,樣例過(guò)了但是后面全wa,我直接???
檢查調(diào)試了好幾遍,輸入了一個(gè)200002之后調(diào)試發(fā)現(xiàn)xx錯(cuò)了,看起來(lái)是爆int了,關(guān)于這一點(diǎn)上學(xué)期好像講過(guò)但是我忘了,對(duì)于xx=x乘x,是先計(jì)算出x乘x的int值,再賦給long long類型的xx,所以爆了。 三年oi一場(chǎng)夢(mèng),不開(kāi)long long見(jiàn)祖宗。
然后就ac了。沒(méi)什么可講的。 代碼如下:
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;
}