double d=625;
double d1=Math.sqrt(d);
String sd1=""+(int)d1;
String sd=""+(int)d;
if(sd.substring(sd.length()-sd1.length(), sd.length()).equals(sd1)){
System.out.println(true);
}else{
System.out.println(false);
}
public static void main(String[] args)
{
b(1);
b(5);
b(6);
b(25);
b(31);
}
public static void b(int a)
{
if((""+a*a).matches("[1-9]+"+a+"$"))
{
System.out.println("守形数");
}
else
{
System.out.println("不是守形数");
}
}
结果:
不是守形数
守形数
守形数
守形数
不是守形数
不知道 1 算不算守形数
for循环,然后转为字符串,然后字符串截取。。然后比较。。