367. 有效的完全平方数
给定一个 正整数num
,编写一个函数,如果 num
是一个完全平方数,则返回 true
,否则返回 false
。
进阶:不要 使用任何内置的库函数,如 sqrt 。
示例 1:
输入:num = 16 输出:true
示例 2:
输入:num = 14 输出:false
提示:
- 1 <= num <= 231 - 1
题解
思路:使用sqrt函数
class Solution { public boolean isPerfectSquare(int num) { double r=Math.sqrt(num); // return r==(int)r?true:false; return r==(int)r; } }
如果是判断一个数是否是2的幂次方
思路 2的幂次方的二进制是前面一个1后面都是0 2的幂次方-1的二进制是前面一个0后面都是1 二者与运算就会得到0
class Solution { public boolean isPerfectSquare(int num) { int n=num&num-1; //return n==0?true:false; return n==0; } }