题解 | #自守数#
自守数
https://www.nowcoder.com/practice/88ddd31618f04514ae3a689e83f3ab8e
import java.util.*; import java.io.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); try { int num = Integer.valueOf(br.readLine()); List<Integer> list = new ArrayList(); list.add(0); for (int i = 1; i <= num; i++) { if (i % 10 == 0 || i % 10 == 1 || i % 10 == 5 || i % 10 == 6) { if (num == 0) { System.out.println(1); return; } int a = i * i; boolean flag = true; int temp = i; while (temp != 0) { if (a % 10 == temp % 10) { a /= 10; temp /= 10; } else { flag = false; break; } } if (flag) { list.add(i); } flag = true; } } System.out.println(list.size()); } catch (IOException e) { e.printStackTrace(); } } }