LeetCode编程练习

来源:互联网 发布:java视频教程数组 编辑:程序博客网 时间:2024/06/06 23:45

题目:

    Given an integer, write a function to determine if it is a power of two.

    给定一个整数,写一个函数来确定它是否是2的幂。


思路:

   刚开始想到,只要判断是不是2的倍数就好,但是又想到是2的倍数但又不是2的幂也有,比如说6。查看解决方案,如果一个数是2的幂的话,那它的二进制最高位必然是1,其他都为0,此时如果减1,最高位就会降一位,其余为0的变为1,把两个数相与,就会得到0.


    还有一种写法,相对来说复杂一些,只要判断最低位是否为1,然后向右移位,判断1的个数就可以判断是不是2的幂,因为如果是2的幂,只有最高位为1,其余都为0。






原创粉丝点击