【算法:Java实现】判断一个数是否是2的N次方
程序员文章站
2022-03-13 12:32:29
...
比如2 4 8 16,是的;6 10 不是的。就看这个数是不是可以拆成N个2相乘。
解法一:暴力解法,循环,
public static boolean solution1(int x) {
// 4 6 16 是2的n次方 , 15 不是
if (x == 0 || x == 1) {
return true;
}
while (x > 1) {
int i = (x % 2 == 0) ? (x /= 2) : (x = 0);
}
if (x == 1) return true;
return false;
}
时间复杂度:O(log(n))
解法二:&运算
小知识: 若 x 满足 x = 2^n, 则 x & (x - 1) == 0
public static boolean solution2(int x) {
// 4 6 16 是2的n次方 , 15 不是
if ((x & (x - 1)) == 0) return true;
return false;
}
时间复杂度:O(1)
下一篇: Linux详解 --- 进程管理
推荐阅读
-
leecode-1 给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 3 的幂次方需满足:存在整数 x 使得 n =3x
-
1)的累加和(累乘积(阶乘))。其中n的值从键盘输入。输入一个2000年以后的年份n,输出所有介于2">
PTA判断输入的整数是否是素数,如果是则输出"1",否则输出"0." 编写程序,求自然数1至n(n>1)的累加和(累乘积(阶乘))。其中n的值从键盘输入。输入一个2000年以后的年份n,输出所有介于2
-
js 判断一个数字是不是2的n次方幂的实例
-
#6 判断一个数是否为2的n次方
-
js 判断一个数字是不是2的n次方幂的实例
-
JavaScript判断一个数字是不是2的n次方幂的方法分享
-
js 判断一个数字是不是2的n次方幂的实例
-
js 判断一个数字是不是2的n次方幂的实例
-
JavaScript判断一个数字是不是2的n次方幂的方法分享
-
【算法:Java实现】判断一个数是否是2的N次方