题目分析:
给定一个32位有符号整型数,判断其是否是4的幂次。
解题思路:
首先,判断整型数是否小于等于0,如果小于等于0,则一定不是4的幂次;
然后,对整型数与4取余,如果余数为0,则将整型数除以4,继续判断,直到整型数不大于1位置。
实现程序
// 版本1实现,直接利用取余,然后除4计算 bool isPowerofFour(int num) { if (num <= 0) return false; while (num > 1) { if (num % 4 == 0) num = num / 4; else return false; } return true; } // 版本2实现,直接利用取余,然后右移两位计算 bool isPowerofFour1(int num) { if (num <= 0) return false; while (num > 1) { if (num % 4 == 0) num = num >> 2; else return false; } return true; }
leetcode_342 Power of Four
最新推荐文章于 2018-10-30 09:22:36 发布