1.遍历
public static boolean isSquare(int num) {
if (num < 0)
return false;
for (int i = 0; i <= num / 2; i++) {
if (i * i == num)
return true;
}
return false;
}
2.开方判断法
开方后判断是否为整数
public static boolean isSquare(int num) {
double a = 0;
try {
a = Math.sqrt(num);
} catch (Exception e) {
return false;
}
int b = (int) a;
return a - b == 0;
}
3.公式法
数学技巧:所有的完全平方数都可以被表示成奇数和1+3+5+7+9 …。
public static boolean advancedIsSquare(int num) {
if (num < 0)
return false;
for (int i = 1; num > 0; i += 2)
num -= i;
return 0 == num;
}