错误的方法:
static boolean isSqure(int n)
{
double fsqrt = Math.sqrt(n);//先将数开平方
int m = (int) fsqrt;//转换成整数
return m*m == n;//把开平方后的整数再平方,看看他和开平方之前的数是不是相等
}
这种方法错误的最大原因是 int型是四舍五入取整的 导致很多不是完全平方数的也能成功
正确的方法:
System.out.println("之间的完全平方数有:");
for(int i=a;i<b;i++){
for(int j=1;j<i;j++){
if(j*j==i){
System.out.print(i+"\t");
}
}
}