342. Power of Four
342. Power of Four
初雪之音 发表于11个月前
342. Power of Four
  • 发表于 11个月前
  • 阅读 13
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

Given an integer (signed 32 bits), write a function to check whether it is a power of 4.

Example:
Given num = 16, return true. Given num = 5, return false.

Follow up: Could you solve it without loops/recursion?

Credits:
Special thanks to @yukuairoy for adding this problem and creating all test cases.

Hint

为什么要利用num-1后能不能整除3判断,很多人各种数学证明,其实从二进制角度很好理解证明。num减1后得到的数字末尾全为1,3的二进制是……11,那么从最低位算起有偶数个1的数字都能整除3,奇数个不能整除。自然4的幂减1后为偶数个1。

Code

public class Solution {
    public boolean isPowerOfFour(int num) {
		boolean result = false;

		if (num > 0) {
			if (((num & (num - 1)) == 0) && ((num - 1) % 3 == 0)) {
				result = true;
			}
		}

		return result;
    }
}

 

标签: leetcode
共有 人打赏支持
粉丝 38
博文 234
码字总数 133413
×
初雪之音
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: