LeetCode 342.4的幂

题目描述

给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。
整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4^x

示例 1:

输入:n = 16
输出:true

示例 2:

输入:n = 5
输出:false

示例 3:

输入:n = 1
输出:true

提示:

-2 ^ 31 <= n <= 2 ^ 31 - 1

进阶:

你能不使用循环或者递归来完成本题吗?

//暴力法
class Solution
{
public:
    bool isPowerOfFour(int n)
    {
        switch (n)
        {
            case 1:
            case 4:
            case 16:
            case 64:
            case 256:
            case 1024:
            case 4096:
            case 16384:
            case 65536:
            case 262144:
            case 1048576:
            case 4194304:
            case 16777216:
            case 67108864:
            case 268435456:
            case 1073741824:
                return true;
                break;
            default:
                return false;
                break;
        }
    }
};
class Solution
{
public:
    bool isPowerOfFour(int n)
    {
        //若n小于1,不可能为4的非负整数次幂
        if (n < 1)
        {
            return false;
        }
        else
        {
            //当n不为1时,对n进行连除操作
            while (n != 1)
            {
                //先判断n是否能被4整除
                if (n % 4 != 0)
                {
                    //不能被4整除一定不是4的非负整数次幂
                    return false;
                    break;
                }
                n /= 4;
            }
            return true;
        }
    }
};
上一篇:(10)节流阀


下一篇:【Agent】Java Agent 介绍与使用