[leetcode-342]Power of Four(java)

原创 2016年06月01日 10:22:52

原题链接:https://leetcode.com/problems/power-of-four/
思路:首先判断是否是2的幂,如果是的话,再去判断是否为4的幂,判断2的幂要求整数的bit位中只有一个1,而这可以根据num & (num -1)来判断。
得到结果后,最佳的方案是能找到1后面有多少个0,然后这个个数对2取余,如果为0,表示可以整除。但是我没找到方法。

public class Solution {
    public boolean isPowerOfFour(int num) {
        if(num < 0)
            return false;
        int tmp = num-1;
        if((tmp & num) == 0){
            while(num != 0 && num != 1){
                num = num >> 2;
            }
            if(num == 1)
                return true;
        }
        return false;
    }
}

2、在网上看到了一种做法:思想是如果一个数为4的倍数,那么这个数-1一定可以被3整除,可以用数学归纳法很容易得到证明。

public class Solution {
    public boolean isPowerOfFour(int num) {
        if(num < 0)
            return false;
        int tmp = num-1;
        return (num & tmp) == 0 && tmp % 3 == 0;
    }
}

leetcode 342. Power of Four 判断一个数是否为4的幂

Given an integer (signed 32 bits), write a function to check whether it is a power of 4. Example:...
  • chenchaofuck1
  • chenchaofuck1
  • 2016年04月23日 17:22
  • 1647

LeetCode 第 342 题(Power of Four)

LeetCode 第 342 题 Given an integer (signed 32 bits), write a function to check whether it is a powe...
  • liyuanbhu
  • liyuanbhu
  • 2016年04月18日 13:07
  • 4260

leetcode. Power of Four-四次方|位运算

原题链接:Power of Four 【思路】 4的次方的某个数必然:1. 满足二进制只有1位是1其余位都是0(通过每次将1左移2位得到),2. 这个数减1以后能被3整除: public bo...
  • happyaaaaaaaaaaa
  • happyaaaaaaaaaaa
  • 2016年04月22日 11:02
  • 853

leetcode解题报告-342. Power of Four

342. Power of FourGiven an integer (signed 32 bits), write a function to check whether it is a power...
  • wj199395
  • wj199395
  • 2017年05月16日 13:31
  • 184

[leetcode] 342. Power of Four 解题报告

题目链接:https://leetcode.com/problems/power-of-four/ Given an integer (signed 32 bits), write a fu...
  • qq508618087
  • qq508618087
  • 2016年04月29日 08:16
  • 671

LeetCode 342. Power of Four(4的n次幂)

原题网址:342. Power of Four 342. Power of Four 342. Power of Four 342. Power of Four Given an integer ...
  • jmspan
  • jmspan
  • 2016年04月30日 11:08
  • 309

leetcode 342. Power of Four

Given an integer (signed 32 bits), write a function to check whether it is a power of 4. Example: G...
  • firenet1
  • firenet1
  • 2016年08月19日 20:20
  • 134

leetcode 342. Power of Four

题目内容 Given an integer (signed 32 bits), write a function to check whether it is a power of 4.Examp...
  • cfylove
  • cfylove
  • 2016年06月03日 20:56
  • 205

【LeetCode-342】Power of Four

这是上一篇文章的升级版本,这是一解题的思想 # -*- encoding = 'utf-8' -*- __author__ = 'MG' import math as m class Soluti...
  • cold2wind
  • cold2wind
  • 2016年04月20日 15:34
  • 261

【LeetCode-342】 Power of Four(C++)

题目要求:要求写一个函数判断一个int型数num是不是4的幂。 解题思路: 可以用循环和不循环两种方式实现。                      第一种:循环。任一个数如果是4的幂,则重复除以4...
  • liujiayu1015
  • liujiayu1015
  • 2016年05月11日 21:09
  • 419
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[leetcode-342]Power of Four(java)
举报原因:
原因补充:

(最多只允许输入30个字)