自守数(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;
}
}
阿里云成长空间 760人发布