自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 = 625,76^2 = 5776,9376^2 = 87909376。请求出n以内的自守数的个数。
自守数经常出现在各类编程书籍的习题中,应该是比较常见的题目吧,当然解决途径也很多,既然是常见题那么记录下来也就有必要了。
bool PanDuan(int i){
int x = i *i;
bool flag = true;
while (i > 0){
if (x % 10 == i % 10){
x=x / 10;
i = i / 10;
}
else{
flag = false;
break;
}
}
return flag;
}
void hwOJ(){
int N = 0;
int count = 0;
cin >> N;
for (int i = 0; i <= N; ++i){
if (PanDuan(i))
++count;
}
cout << count;
cout << endl;
}