给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。
进阶:不要 使用任何内置的库函数,如 sqrt 。
示例 1:
输入:num = 16
输出:true
示例 2:
输入:num = 14
输出:false
public static boolean isPerfectSquare(int num) { int l=0; int r=num; int mid = 0; while (l<=r) { mid = (r-l)/2 +l; if ((long)mid*mid < num) { l = mid +1; } else if ((long)mid * mid > num) { r = mid - 1; } else { return true; } } return false; } public static boolean isPerfectSquare11(int num) { int l=0; int r=num; int mid = 0; while (l<=r) { mid = (r-l)/2 +l; int temp = num / mid; if (temp < mid) { r = mid - 1; } else if (temp > mid) { l = mid +1; } else { if (num%mid == 0) return true; l = mid + 1; } } return false; } public static boolean isPerfectSquare1(int num) { int x = (int) Math.sqrt(num); return x * x == num; } public static boolean isPerfectSquare3(int num) { int temp = 1; for (int i = 0; i < num/2+1; i++) { temp = i*i; if (temp == num) { return true; } } return false; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)