前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >231. 2的幂

231. 2的幂

作者头像
张伦聪zhangluncong
发布2022-10-26 18:12:05
3190
发布2022-10-26 18:12:05
举报
文章被收录于专栏:张伦聪的技术博客

给定一个整数,编写一个函数来判断它是否是 2 的幂次方。

示例 1:

代码语言:javascript
复制
输入: 1
输出: true
解释: 20 = 1

示例 2:

代码语言:javascript
复制
输入: 16
输出: true
解释: 24 = 16

示例 3:

代码语言:javascript
复制
输入: 218
输出: false

解1:位运算。不管是2的正幂次还是2的负幂次肯定都大于0,如果n小于0可以直接返回false,2的负幂次如2^-3等价于1/2^3一定是小数,由于入参为int所以这种情况也不存在。所以看表格,很清晰,如果n&(n-1)为0那说明是。

2的幂次

十进制形式

二进制形式

减1二进制形式

2 ^ 0

1

00000001

00000000

2 ^ 1

2

00000010

00000001

2 ^ 2

4

00000100

00000100

2 ^ 3

8

00001000

00000111

2 ^ 4

16

00010000

00001111

2 ^ 5

32

00100000

00011111

2 ^ 6

64

01000000

00111111

代码语言:javascript
复制
class Solution {
    public boolean isPowerOfTwo(int n) {
        return (n > 0) && ((n & (n - 1)) == 0);
    }
}

解2:

代码语言:javascript
复制
class Solution {
    public boolean isPowerOfTwo(int n) {
        //return (n > 0) && ((n & (n - 1)) == 0);
        if (n < 1) {
            return false;
        }
        while (n != 1) {
            if (n % 2 == 1) {
                return false;
            }
            n /= 2;
        }
        return true;
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档