当前位置:网站首页>【日常训练--腾讯精选50】231. 2 的幂

【日常训练--腾讯精选50】231. 2 的幂

2022-07-07 11:37:00 Puppet__

题目

给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。

如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。

示例 1:
输入:n = 1
输出:true
解释:20 = 1

示例 2:
输入:n = 16
输出:true
解释:24 = 16

示例 3:
输入:n = 3
输出:false

示例 4:
输入:n = 4
输出:true

示例 5:
输入:n = 5
输出:false

提示:
-231 <= n <= 231 - 1

代码

package tencent50;

public class leetcode231 {
    

    // 符合规定的n最大取值为2^30,所以我们只要判断当前的n是不是2^30的约数即可
    int bigNum = 1 << 30;
    public boolean isPowerOfTwo(int n) {
    
        return n > 0 && bigNum % n == 0;
    }
    // 或者是2的幂的话,则它二进制上只有一位为1
    public boolean isPowerOfTwo1(int n) {
    
        return n > 0 && (n & (n - 1)) == 0;
    }

    public static void main(String[] args) {
    
        leetcode231 obj = new leetcode231();
        System.out.println(obj.isPowerOfTwo(3));
    }
}

原网站

版权声明
本文为[Puppet__]所创,转载请带上原文链接,感谢
https://blog.csdn.net/Puppet__/article/details/125655072