题解 | #自守数#
自守数
http://www.nowcoder.com/practice/88ddd31618f04514ae3a689e83f3ab8e
思路
- 将原数和求平方的数和10取余,一位一位 判断是否相等
- 注意0也是自守数,因此最后输出时需要+1再输出
Answer
#include<stdio.h>
int main() {
int val;
int cnt=0;
scanf("%d", &val);
for (int i = 0; i <= val; i++) {
int m = i;
int n = i * i;
while (m>0) {
if ((m % 10) != (n % 10))break;
m /= 10;
n /= 10;
if (m == 0) {
cnt++;
}
}
}
printf("%d\n", cnt + 1);
}