367. 有效的完全平方数【我亦无他唯手熟尔】

简介: 367. 有效的完全平方数【我亦无他唯手熟尔】

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;
    }
}
相关文章
|
9月前
|
JavaScript 前端开发 C#
这些C比较运算符的秘密,你不会就亏大了!
这些C比较运算符的秘密,你不会就亏大了!
72 0
宝藏例题(欧几里得算法+素数的三种境界………)
宝藏例题(欧几里得算法+素数的三种境界………)
宝藏例题(欧几里得算法+素数的三种境界………)
598. 范围求和 II【我亦无他唯手熟尔】
598. 范围求和 II【我亦无他唯手熟尔】
72 0
869. 重新排序得到 2 的幂【我亦无他唯手熟尔】
869. 重新排序得到 2 的幂【我亦无他唯手熟尔】
59 0
|
算法
563. 二叉树的坡度【我亦无他唯手熟尔】
563. 二叉树的坡度【我亦无他唯手熟尔】
69 0
260. 只出现一次的数字 III【我亦无他唯手熟尔】
260. 只出现一次的数字 III【我亦无他唯手熟尔】
57 0
1446. 连续字符【我亦无他唯手熟尔】
1446. 连续字符【我亦无他唯手熟尔】
65 0
|
9月前
|
C++
N诺——c++取随机数
N诺——c++取随机数
56 0
|
9月前
|
存储
每日一题啦(● ̄(エ) ̄●)(尼克切斯定理,等差数列)
每日一题啦(● ̄(エ) ̄●)(尼克切斯定理,等差数列)
40 0
|
C语言
逗号表达式与 “++“ , “--“的 “爱恨情仇”~~~
逗号表达式与 “++“ , “--“的 “爱恨情仇”~~~
119 1