O(1)时间检测2的幂

来源:互联网 发布:java反射实现原理 编辑:程序博客网 时间:2024/05/29 14:14
/*
问题描述:用 O(1) 时间检测整数 n 是否是 2 的幂次。
来源:LintCode
作者:syt

日期:2017-8-20

思路:根据2的幂二进制特点,即为1,10,100,1000....只要去除二进制中最低点的1,该数即为零

*/

#include <iostream>using namespace std;/** @param n: An integer* @return: True or false*/bool checkPowerOf2(int n) {// write your code hereif (n > 0){if ((n&(n - 1)) == 0)return true;elsereturn false;}elsereturn false;}