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;
}
相关推荐
To_OC3 小时前
LC 51 N 皇后:我以为难的是回溯,结果栽在了对角线下标
javascript·算法·leetcode
2401_841495643 小时前
【操作系统】进程同步与互斥实验报告
c++·算法·操作系统·进程·并发·同步·互斥
爱刷碗的苏泓舒7 小时前
PPP-AR 中的参考星选取:数学原理、评价指标与切换处理
算法·gnss·模糊度固定·ppp-ar·星间单差·参考星·卫星端偏差
烬羽10 小时前
递归老写崩?一个"退回"公式,把回溯题变成填空题
javascript·深度学习·算法
闪电悠米10 小时前
力扣hot100-41.缺失的第一个正数-原地哈希详解
数据结构·算法·哈希算法
WL学习笔记11 小时前
堆(数据结构)
数据结构·
星空露珠11 小时前
28种颜色对应名称,
开发语言·数据库·算法·游戏·lua
QXWZ_IA12 小时前
桥梁数字孪生怎么落地?
人工智能·科技·算法·智能硬件·政务
Kel13 小时前
输出层与反分词(Output Layer & Detokenization)
人工智能·算法·架构