可以不用Math.sqrt();方法
public static boolean isPerfectSquare(int num){
int i = 1;
while(num > 0){
num -= i;
i += 2;
}
if(num == 0) return true;
else return false;
}
解释:奇数的等差数列1,3,5,7,…… 2n - 1的和sn是n^2,因此只要一个数是完全平方数,它可以分解为一个奇数的等差数列。
因此将这个数依次减去等差数列,直到等于或小于0,若等于0则是完全平方数,小于零则不是。