自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 = 625,76^2 = 5776,9376^2 = 87909376。请求出n以内的自守数的个数
输入:N
输出:N以内自守数的个数
#include <iostream>
#include<math.h>
using namespace std;
int main()
{
int n;
int amount = 0;
cin >> n;
if (n == 0)
{
cout << 1;
}
else if (n == 1)
{
cout << 2;
}
else
{
for (int i = 1;i <= n;i++)
{
int square = i*i;
int count = 0;
int ji = 1;
for (;i >=ji;) //注意判断条件
{
count++;
ji *= 10; //10的指数函数
}
if ((square - i) % ji == 0)
{
amount++;
}
}
cout << amount + 1 << endl;
}
return 0;
}
注意:1.math头文件要加.h
2.在判断数字的位数这一部分测试了很长时间,要特别注意下