自守数(indexOf()方法判断)
自守数
http://www.nowcoder.com/questionTerminal/88ddd31618f04514ae3a689e83f3ab8e
解题思路
1、利用字符串的indexOf()方法。
2、第一步是先计算得到数字n的平方值。
3、第二步是将它们转化为字符串,通过查找数字n在平方值字符串中的下标。
4、判断条件:如果数字n在平方值字符串中的下标 = 平方值字符串长度-数字n长度,则说明数字n为自守数。否则不是。
import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { int n = scanner.nextInt(); fun(n); } } public static void fun(int n) { int ans = 0; for (int i = 0; i <= n; i++) { if (isZiShowNumber(i)) { ans++; } } System.out.println(ans); } public static boolean isZiShowNumber(int num) { int m = num * num; String str1 = String.valueOf(m); String str2 = String.valueOf(num); int len1 = str1.length(); int len2 = str2.length(); int index = str1.indexOf(str2); if (index == len1 - len2) { return true; } return false; } }