题目链接:
解题思路:
需要注意当输入的数 非个位数时,
此时 n*n 应该是以 n 的整体结尾,而不是以 n%10 去结尾
参考代码:
#include<bits/stdc++.h>
using namespace std;
int main( )
{
int n = 0;
cin >> n;
if (n < 10) //输入的 n 是个位数
{
if((n*n % 10) == n)
{
cout << "YES" << endl;
}
else
{
cout << "NO" << endl;
}
}
else //输入的 n 不是个位数
{
int p = n*n;
int flag = 0;
//while((p % 10) == (n%10))
while(n)
{
if((p % 10) == (n%10))
{
flag = 1;
}
else
{
flag = 0;
break;
}
p = p / 10;
n = n / 10;
}
if(flag == 1)
{
cout << "YES" << endl;
}
else
{
cout << "NO" << endl;
}
}
return 0;
}