4的幂(位运算)

给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。

示例 1:

输入: 16
输出: true

示例 2:

输入: 5
输出: false

进阶:
你能不使用循环或者递归来完成本题吗?

自己写的代码:

class Solution {
public:
    bool isPowerOfFour(int num) {
        if(num%4!=0&&num!=1)
            return false;
        else{
            long long sum = 1;
            for(int i=1;;i++){
                if(sum==num)
                    return true;
                if(sum>num)
                    return false;
                sum*=4;
            }
        }
    }
};

通过百度,看了下大佬的代码,原来这个题目,可以用位运算搞定。

学习的博客:

https://blog.csdn.net/morewindows/article/details/7354571 讲述了一下位运算。

https://blog.csdn.net/ddkxddkx/article/details/6858381

参考的代码:

https://blog.csdn.net/u010564321/article/details/51210749

https://blog.csdn.net/Hackbuteer1/article/details/6681216

二进制很重要~~~

©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页