4的幂

给定一个整数 (32位有符整数型),请写出一个函数来检验它是否是4的幂。

示例:

num = 16 时 ,返回 true 。 当 num = 5时,返回 false

问题进阶:你能不使用循环/递归来解决这个问题吗?


思考
4的幂具有以下性质:
为正数,且取4的模肯定为0,用4整除得商再用4整除最终商为1。
使用递归可以轻松解决。

    public boolean isPowerOfFour(int num) {
        if (num <= 0) {
            return false;
        }
        if (num > 4 && num % 4 > 0) {
            return false;
        }
        if (num == 1) {
            return true;
        } else {
            return isPowerOfFour(num / 4);
        }
    }

猜你喜欢

转载自blog.csdn.net/lc199408/article/details/80860603
4--