热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java判断是否是4的幂_Tips!判断一个数是不是4的幂次方?

题目上说了尽量不要使用循环或者递归,于是想到了之前做过的判断一个数是不是2的幂次方,因此,我们看一哈有没有相似性。4的幂次方一定是2的幂次

题目上说了尽量不要使用循环或者递归,于是想到了之前做过的判断一个数是不是2的幂次方,因此,我们看一哈有没有相似性。

4的幂次方一定是2的幂次方,但是反过来却不成立。例如,8是2的3次方,但并不是4的幂次方。

1转成2进制是1;

4转成2进制是100;

6转成2进制是110;

8转成2进制是1000;

16转成2进制是10000;

判断一个数是不是2的幂次方,我们要看这个数转成2进制后是不是所有位数只有1个1。

那4的幂次方的规律就是看这个数转成2进制后是不是所有位数只有1个1,并且这个1只能在奇数位上出现。

code:

class Solution {

public:

bool isPowerOfFour(int num) {

if(num == 1) return true;

if(num <&#61; 3) return false;

int count &#61; 0;

int i &#61; 1;

while(num !&#61; 0){

if((num&1) !&#61; 0 && (i&1) !&#61; 0){

count&#43;&#43;;

}

if((i&1) &#61;&#61; 0 && (num&1) !&#61; 0){

return false;

}

num>>&#61;1;

i&#43;&#43;;

}

if(count &#61;&#61; 1)

return true;

return false;

}

};

这样子的解决方法相较于循环等方法肯定是省力不少的。



推荐阅读
author-avatar
晕晕的劳拉
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有