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

博客围绕判断整数是否为2的幂次方展开。给出题目,即判断整数n是否存在整数x使n == 2x,若是则返回true,否则返回false,并给出多个示例。最后提及会给出相应代码。

题目

给你一个整数 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));
    }
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值