【LetCode——342】Power of four

    xiaoxiao2025-06-05  15

    一个正整数,判断是否是4的次方;(不使用循环、递归)

    首先想到的是不停的除4,判断最后是否为1;循环、递归

    bool isPowerOfFour(int num)

    {

        if(num <= 0)    return false;

    while(num && (num % 4 == 0))

    {

    num = num / 4;

    }

            return num == 1;

    }

    找规律,不能使用循环、递归,特殊方法:

    特殊方法一:

    1、是2的次方;

    2、num-1后能被3整除;

    特殊方法二:

    4的次方数的二进制如下:

    0000000000000001 0000000000000100 0000000000010000 0000000001000000 0000000100000000

    num & 0x55555555 != 0

    return num && !(num &&  (num - 1)) && (num & 0x55555555) != 0;

    转载请注明原文地址: https://ju.6miu.com/read-1299641.html
    最新回复(0)