题解 | #自守数#
自守数
https://www.nowcoder.com/practice/88ddd31618f04514ae3a689e83f3ab8e
#include <stdio.h> #include <string.h> int main() { int n; scanf("%d", &n); int count = 1; for (int i = 1; i <= n; i++) { int ts[100]; int c = 0; int m = i * i; while (m > 0) { ts[c] = m % 10; m = m / 10; c++; } /* for (int j = 0; j < c; j++) { printf("%d ", ts[j]); }*/ int s1 = 0, s2 = 0, j = 1, k = 0, l; l = i; while (l > 0) { s1 += (l % 10) * j; s2 += ts[k] * j; l /= 10; j *= 10; k++; } if (s1 == s2) count++; } printf("%d\n", count); return 0; }