跳到主要内容

求4的幂

package whale.leetcode.simple;

/**
* @Author: WhaleFall541
* @Date: 2021/5/31 23:22
*/
public class PowerOfFour {
public static void main(String[] args) {
System.out.println(isPowerOfFour1(1073741825));
}


public static boolean isPowerOfFour1(int n) {
if (n == 1)
return true;
int a = 4;
// a还没到n的大小就继续乘以4,最后大小溢出后a=0
while (n > a && a > 0) {
a = a * 4;
}
if (n == a)
return true;
else
return false;
}

public static boolean isPowerOfFour(int n) {
// 此处看的答案 二进制 011 & 100 = 000 而且 4 % 3 =1
return n > 0 && (n & (n - 1)) == 0 && n % 3 == 1;
}
}
协议
  • 本作品代码部分采用 Apache 2.0协议进行许可。遵循许可的前提下,你可以自由地对代码进行修改,再发布,可以将代码用作商业用途。但要求你:

    • 署名:在原有代码和衍生代码中,保留原作者署名及代码来源信息。
    • 保留许可证:在原有代码和衍生代码中,保留Apache 2.0协议文件。
  • 本作品文档部分采用知识共享署名 4.0 国际许可协议进行许可。 遵循许可的前提下,你可以自由地共享,包括在任何媒介上以任何形式复制、发行本作品,亦可以自由地演绎、修改、转换或以本作品为基础进行二次创作。但要求你:

    • 署名:应在使用本文档的全部或部分内容时候,注明原作者及来源信息。
    • 非商业性使用:不得用于商业出版或其他任何带有商业性质的行为。如需商业使用,请联系作者。
    • 相同方式共享的条件:在本文档基础上演绎、修改的作品,应当继续以知识共享署名 4.0国际许可协议进行许可。