难度是如何确定自守数:采用String 的endWith
private static boolean isZiShouShu(int n) {
int re = n * n;
return Integer.toString(re).endsWith(Integer.toString(n));
}
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextInt()) { // 注意 while 处理多个 case int a = in.nextInt(); int c = 0; for (int i = 0; i <= a; i++) { if (isZiShouShu(i)) { c++; } } System.out.println(c); } } private static boolean isZiShouShu(int n) { int re = n * n; return Integer.toString(re).endsWith(Integer.toString(n)); } }