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

示例 1:

输入: 16
输出: true
示例 2:

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

方法一:

class Solution {
    public boolean isPowerOfFour(int num) {
        while(num%4==0)
        {
            num/=4;
            if(num==0||num==1)
            {
                break;
            }
        }
        if(num==1)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

方法二:位运算

4的幂都有一个特点,二进制位奇数位为1,偶数位为0

10101010101010101010101010101010,因此如果一个数和前面这个二进制数字进行&运算之后还是它本身,那么他一定奇数位为1,偶数位为0,

但是,如果这个数是20呢,比如10100,他进行&运算之后也是他本身

因此我们先进行一个判断,判断他是不是2的幂,如果是,那就说明只有最高位才为1,其他位都为0,之后再进行和10101010101010101010101010101010的&操作

而10101010101010101010101010101010的16进制写法是0x55555555

class Solution {
    public boolean isPowerOfFour(int num) {
        if(num<=0)
        {
            return false;
        }
        if((num&num-1)!=0)
        {
            return false;
        }
        if((num&0x55555555)==num)
        {
               return true;
         }
        return false;
    }
}

Leetcode--342. 4的幂相关推荐

  1. LeetCode 342. 4的幂(位运算)

    文章目录 1. 题目 2. 解题 2.1 通用解法 2.2 找规律 1. 题目 给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方. 示例 1: 输入: 16 输出: t ...

  2. LeetCode 342. 4的幂 附带《Effective C++》pdf电子书

    题目描述: 给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方. 示例 1: 输入: 16 输出: true 示例 2: 输入: 5 输出: false 解法分析: 一道 ...

  3. LeetCode 342. 4的幂 附带《Effective C++》pdf版下载

    题目描述 给出 N 名运动员的成绩,找出他们的相对名次并授予前三名对应的奖牌.前三名运动员将会被分别授予 "金牌","银牌" 和" 铜牌"( ...

  4. leetcode刷题笔记342 4的幂

    题目描述: 给定一个整数 (32位有符整数型),请写出一个函数来检验它是否是4的幂. 示例: 当 num = 16 时 ,返回 true . 当 num = 5时,返回 false. 问题进阶:你能不 ...

  5. 【Leetcode | 12】342. 4的幂

    给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方. 示例 1: 输入: 16 输出: true 示例 2: 输入: 5 输出: false 方法一: class Sol ...

  6. LeetCode 326. 3的幂

    1. 题目 给定一个整数,写一个函数来判断它是否是 3 的幂次方. 示例 1: 输入: 27 输出: true示例 2: 输入: 0 输出: false示例 3: 输入: 9 输出: true示例 4 ...

  7. LeetCode 231. 2的幂 LeetCode 338. 比特位计数(2进制1的个数)

    文章目录 1. 题目信息 2. 解题 拓展:求一个数n的2进制有多少个1? LeetCode 338 1. 题目信息 给定一个整数,编写一个函数来判断它是否是 2 的幂次方. 示例 1:输入: 1 输 ...

  8. leetcode算法总结 —— 快速幂算法

    文章目录 1. 引出快速幂算法 2. 简化语句 3. 使用位运算来提升性能 4. 对应leetcode题型 参考的是大神的文章,这篇文章相当好 https://blog.csdn.net/qq_197 ...

  9. 342. 4的幂【简单】

    给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方. 示例 1: 输入: 16 输出: true 示例 2: 输入: 5 输出: false 来源:力扣(LeetCode ...

  10. [leetcode] 342. Power of Four

    题目 Given an integer (signed 32 bits), write a function to check whether it is a power of 4.Example: ...

最新文章

  1. matlab有限域多项式除法_椭圆曲线密码学简介(二):有限域的椭圆曲线及离散对数问题...
  2. requestmapping配置页面后_@RequestMapping使用须知
  3. 使用Notepad++开发C#,一个复杂点的csscript脚本
  4. 这个情人节,工程师用阿里云来试着表达不一样的爱意
  5. python小工具(一)
  6. Angular和.NET Core Web API入门应用程序
  7. 读取文件卡顿_CPU占用100%,电脑卡顿原来可以这样解决!多任务操作也运行如飞...
  8. bootstrap今天的学习心得
  9. linux刻录文件,Linux命令行下刻录CD-ROM数据光盘详细过程
  10. MySQL 用户表损坏 无法导出数据 无法使用mysql_update mysqd --update=FORCE无效 措施之一
  11. 什么是 GC,有什么作用?
  12. RLC串联电路截止频率
  13. 点乘/内积/数量积;叉乘/向量积;矩阵乘法;哈达马积;克罗内克积;卷积
  14. ViewFlipper-仿淘宝垂直广告滚动
  15. 2022-2023年最新最全计算机相关专业毕设选题推荐
  16. js 前端时间选择器
  17. 管理学总论之管理者的角色和技能
  18. CMS几种GC模式解读
  19. python 生成唯一ID
  20. 再续局域网arp***

热门文章

  1. LeetCode 525. 连续数组(前缀和+哈希)
  2. LeetCode 973. 最接近原点的 K 个点(排序/优先队列/快排)
  3. LeetCode 873. 最长的斐波那契子序列的长度(动态规划)
  4. LintCode 1652. 区间异或 II
  5. LeetCode 648. 单词替换(Trie树)
  6. POJ 2785 有多少种4个数相加等于0的方案(二分查找 or hash)
  7. python基础实例 韦玮 pdf_Python基础实例教程(微课版)
  8. java跳转html页面_springboot 2.0.8 跳转html页面
  9. python安装requests库超时_【Python 库】requests 详解超时和重试
  10. SpringCloud中文社区转型Spring4All欢迎您的加入