美文网首页
326 && 342

326 && 342

作者: Shiyi001 | 来源:发表于2016-10-15 13:13 被阅读0次

    326. Power of Three

    Given an integer, write a function to determine if it is a power of three.


    解题思路

    这道题要求不用循环和递归。。。。。。。。(本来超水)

    不过我们可以逆向考虑,3的k的幂一定能被3的n的幂整除(其中3的n的幂为范围内最大的power of 3).......(还是略水)


    代码

    class Solution {
    public:
        bool isPowerOfThree(int n) {
            return ( n>0 &&  1162261467%n==0);
        }
    };
    

    342. Power of Four

    Given an integer (signed 32 bits), write a function to check whether it is a power of 4.


    解题思路

    一看到这题还以为跟上面那题是一样的,仔细一想不对啊,不能满足上面关系的数还挺多的(比如8,32)。不过范围内4的k次幂确实不多,那就打个表咯~


    代码

    class Solution {
    public:
        bool isPowerOfFour(int num) {
            switch(num){
                case 1: 
                    return true;
                case 4: 
                    return true;
                case 16: 
                    return true;
                case 64: 
                    return true;
                case 256: 
                    return true;
                case 1024: 
                    return true;
                case 4096: 
                    return true;
                case 16384: 
                    return true;
                case 65536: 
                    return true;
                case 262144: 
                    return true;
                case 1048576: 
                    return true;
                case 4194304: 
                    return true;
                case 16777216: 
                    return true;
                case 67108864: 
                    return true;
                case 268435456: 
                    return true;
                case 1073741824: 
                    return true;
                dafault:
                    return false;
            }
            return false;
        }
    };
    

    这段代码击败了100%的代码,打表大法好啊

    相关文章

      网友评论

          本文标题:326 && 342

          本文链接:https://www.haomeiwen.com/subject/fsonyttx.html