Power of Four二进制特性--力扣101算法题解笔记

10.3Power of Four二进制特性

题目描述

给定一个整数,判断它是否是4的次方。

输入输出样例

Input :16

Output:true

题解

像这种找是不是x的倍数的题,最好的解法就是先找到在int的范围下,x的最大次方是多少,找到之后,把n和这个数按位与,如果结果不是0,那么就说明这个数是4的次方。

当然,还有两个前置条件,第一就是x必须要大于0,第二就是简单判断是否为2的次方,如果不是 2 的次方的数 = 二进制有好几个 1,导致无法准确判断是否为4的次方。第三步就是判断跟最高次方的与了。

cpp 复制代码
#include <iostream>
using namespace std;

bool isPowerOfFour(int n) {
        bool a = n > 0;                                //n是否>0
        bool b = !(n & (n - 1));        //b为true则证明n是2的次方
        bool c = n & 1431655765;        //判断那个唯一的 1,是不是在偶数位

        return a && b && c;
}

int main() {
        int n = 16;

        if (isPowerOfFour(n)) {
                cout << "true" << endl;
        }
        else {
                cout << "false" << endl;
        }

        return 0;
}
相关推荐
Dlrb12118 分钟前
数据结构-链表
数据结构·链表·逻辑结构·单向链表·物理结构·valgrind工具
小的~~14 分钟前
算法题:只出现一次的数字
数据结构·算法
灵智实验室16 分钟前
PX4状态估计技术EKF2详解(六):EKF2 磁力计融合——从航向修正到 3D 姿态约束
算法·无人机·px 4
JieE21219 分钟前
手把手带你用虚拟头节点实现单链表,搞定所有边界问题
javascript·算法
一切皆是因缘际会25 分钟前
从概率拟合到内生心智:七层投影架构重构AGI数字生命新范式
大数据·数据结构·人工智能·重构·架构·agi
历程里程碑32 分钟前
56 . 高效ET非阻塞IO服务器设计指南
java·运维·服务器·开发语言·数据结构·c++·排序算法
搞科研的小刘选手42 分钟前
【大连市计算机学会主办】第三届图像处理、智能控制与计算机工程国际学术会议(IPICE 2026)
图像处理·人工智能·深度学习·算法·计算机·数据挖掘·智能控制
南境十里·墨染春水44 分钟前
数据结构 —— 顺序表
数据结构
人月神话-Lee1 小时前
【图像处理】高斯模糊——最优雅的模糊算法
图像处理·人工智能·算法·ios·ai编程·swift
tongluowan0071 小时前
数据结构 Bitmap(位图)示例 - 用户签到系统
开发语言·数据结构·bitmap·用户签到系统