题意理解
给定一个数,判断是不是完全平方数?
问题分析
整数有表示范围,那么最大的完全平方数也是有范围的,这个范围是1~46340.
然后用二分法计算。
其他
另一种方法,完全平方数,可以看成是连续奇数的和。
链接
bool isPerfectSquare(int num) {
int low = 1, high = 46340;
while(low <= high) {
int mid = low + (high - low) / 2;
if(mid * mid == num) return true;
else if (mid * mid < num) low = mid + 1;
else high = mid - 1;
}
return false;
}