有一道算法题是这样的,求一个数是否是2的整数次幂。
刚开始我的算法是这样写的:
让这个数每次都除以2,然后再乘以2,看这两个数是否相等,不相等就返回false。放在循环里面让它从头除到尾。
public
boolean
isPower(
int
number)
{
if (number < 2){
return false;
} else{
int temp = 0;
while (number > 1){
temp = number / 2;
if (temp * 2 !=
if (number < 2){
return false;
} else{
int temp = 0;
while (number > 1){
temp = number / 2;
if (temp * 2 !=

本文探讨了一道算法题,即如何判断一个数是否为2的整数次幂。初始算法通过不断除以2和乘以2进行比较,后优化为使用移位运算。进一步思考后,提出将数转化为2进制,判断其二进制表示中是否仅有一个位于最高位的1,从而确定是否为2的幂。
最低0.47元/天 解锁文章
196





