Leetcode 231判断一个数是否是2的幂数

判断一个数是否是2的幂数:

分析:两种思路①一直除2判断余数如果最后余数是1肯定是2的幂数

                       ②按位与运算,一个数x如果是2的幂数,那么x的二进制里只有一个1,x-1二进制最高位变成了0,其他位就都是1,与x按位与运算结果为o的话就是2的幂数。

java:①

class Solution {
    public boolean isPowerOfTwo(int n) {
        if(n==0)
            return false;
        else if(n==1)
            return true;
        else
        {
            while(n%2==0&&n/2!=0)
            {
                n=n/2;
            }
            if(n==1)
                return true;
            else
                return false;
            
        }
       
     }

}

②:第二种思路

java:

class Solution {
    public boolean isPowerOfTwo(int n) {
        int maxint=2147483647;//考虑是否溢出
        int minint=-2147483647;
        if(n==0)
            return false;
        else
        {   if(n<minint||n>maxint)
                return false;
            else
                return((n&(n-1))==0);
        }
            
     }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 18:02
好不容易拿到了字节Offer,鼠鼠做后端的,但家里人觉得可能被裁员不稳定,让鼠鼠去投国企,现在好纠结到底该咋选
文档传偷助手:该投就投吧,不过建议别放弃offer 拿到手里的才是最好的
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
06-12 10:50
门头沟学院 Java
你的不定积分没加C:我怎么在学院群看到了同样的话
点赞 评论 收藏
分享
07-02 10:44
门头沟学院 C++
码农索隆:太实诚了,告诉hr,你能实习至少6个月
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务