leetcode 342— 4的幂

package com.example.lettcode.bits;

/**
 * @Class IsPowerOfFour
 * @Description 342 4的幂
 * 给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。
 * 整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4x
 * 示例 1:
 * 输入:n = 16
 * 输出:true
 * <p>
 * 示例 2:
 * 输入:n = 5
 * 输出:false
 * <p>
 * 示例 3:
 * 输入:n = 1
 * 输出:true
 * @Author
 * @Date 2021/5/31
 **/
public class IsPowerOfFour {
    /**
     * 方法1:位运算
     *
     * @param n
     * @return
     */
    public static boolean isPowerOfFour(int n) {
        if (n <= 0) return false;
        if (n == 1) return true;

        while (n > 1) {
            // 需要是4的倍数,如果不是,可以直接得出结论
            if (n % 4 != 0) return false;
            n >>= 2;
        }
        return true;
    }
}
// 测试用例
public static void main(String[] args) {
	int n = 16;
	boolean ans = IsPowerOfFour.isPowerOfFour(n);
	System.out.println("IsPowerOfFour demo01 result : " + ans);

	n = 5;
	ans = IsPowerOfFour.isPowerOfFour(n);
	System.out.println("IsPowerOfFour demo02 result : " + ans);

	n = 1;
	ans = IsPowerOfFour.isPowerOfFour(n);
	System.out.println("IsPowerOfFour demo03 result : " + ans);

	n = 2;
	ans = IsPowerOfFour.isPowerOfFour(n);
	System.out.println("IsPowerOfFour demo04 result : " + ans);
}
posted @ 2021-05-31 15:17  枫叶艾辰  阅读(65)  评论(0编辑  收藏  举报