算法-自守数
题目描述
自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 = 625,76^2 = 5776,9376^2 = 87909376。请求出n以内的自守数的个数
输入描述:
int型整数
输出描述:
n以内自守数的数量
示例1
输入:2000
输出:8
来源:牛客网
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
while (input.hasNext()){
int count = 0;
long num = input.nextLong();
for(long i = 0; i < num; i++){
long value = (long) Math.pow(i,2);
String valueStr = String.valueOf(value);
String numStr = String.valueOf(i);
int len = numStr.length();
if(valueStr.length() == numStr.length()){
if(valueStr.equals(numStr)){
count++;
}
}
else{
String sub = valueStr.substring(valueStr.length()-len);
if(sub.equals(numStr)){
count ++;
}
}
}
System.out.println(count);
}
}
}