NC365. 2的幂
描述
示例1
输入:
4
输出:
true
说明:
示例2
输入:
6
输出:
false
C++ 解法, 执行用时: 3ms, 内存消耗: 308KB, 提交时间: 2022-04-21
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 * @return bool布尔型 */ bool poweroftwo(int n) { // write code here // 法2:位运算,利用数字的性质,若是2的幂次,那么n和n - 1没有一个位相同 int num = n & (n - 1); return n > 0 && num == 0; // 法1:位运算,检查n二进制中是否只有一个1 // if (!n) return false; // int cnt = 0; // while(n) { // cnt += (n & 1); // if (cnt > 1) return false; // n >>= 1; // } // return true; } };
C 解法, 执行用时: 3ms, 内存消耗: 396KB, 提交时间: 2022-04-07
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 * @return bool布尔型 * * C语言声明定义全局变量请加上static,防止重复定义 */ bool poweroftwo(int n ) { // write code here if(n <= 0)return false; while(n > 0){ if(n&1)break; n=n>>1; } if(n>1)return false; else return true; }
C++ 解法, 执行用时: 3ms, 内存消耗: 400KB, 提交时间: 2022-05-15
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 * @return bool布尔型 */ bool poweroftwo(int n) { // write code here return n>0&&(n&(n-1))==0; } };
C++ 解法, 执行用时: 3ms, 内存消耗: 404KB, 提交时间: 2022-07-26
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 * @return bool布尔型 */ bool poweroftwo(int n) { // write code here int cnt = 0; while (n != 0) { n = n & (n - 1); cnt++; } if (cnt == 1) { return true; } return false; } };
C++ 解法, 执行用时: 3ms, 内存消耗: 404KB, 提交时间: 2022-07-04
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 * @return bool布尔型 */ bool poweroftwo(int n) { // write code here if (n == 0) return false; for (int k = 1; k <= n ; k *= 2) { if (k == n) return true; } return false; } };