题解

将 i 和 i * i 转为字符串进行比较,查看i与i*i的末尾是否相同即可。

代码

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextInt()) {
            int n = sc.nextInt();
            int count = 0;
            for (int i = 0; i <= n; i++) {
                String str = String.valueOf(i * i);
                String index = String.valueOf(i);
                // 比较 i的值是否与i*i的最后相同
                if (index.equals(str.substring(str.length() - index.length()))) {
                    count++;
                }
            }
            System.out.println(count);
        }
    }
}