Power of Four
来源:互联网 发布:linux yum安装snmp 编辑:程序博客网 时间:2024/05/21 16:57
Given an integer (signed 32 bits), write a function to check whether it is a power of 4.
Example:
Given num = 16, return true. Given num = 5, return false.
Follow up: Could you solve it without loops/recursion?
Tags
Bit Manipulation
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*** Non-positive number is not a power of n
Using Loop/Recursion
/** * @param {number} num * @return {boolean} */var isPowerOfFour = function (num) { while (num > 1) { if (num % 4 === 0) { num = num / 4; } else { return false; } } if (num === 0 || num < 0) { return false; } if (num === 1) { return true; }};/* * Summarize * A 4 byte int range: * -2,147,483,648 to 2,147,483,647 */
Follow up: without loop solution
Let's find out the rules
Decimal => Binary
1 => 0000 0000 0000 0000 0000 0000 0000 0001
2 => 0000 0000 0000 0000 0000 0000 0000 0010
3 => 0000 0000 0000 0000 0000 0000 0000 0011
4 => 0000 0000 0000 0000 0000 0000 0000 0100
...
8 => 0000 0000 0000 0000 0000 0000 0000 1000
...
We can easily tell that
if the number is multiple of 4, its binary gonna be 100 exponentiation.
So transform the number to binary and get the log of 100 to see whether it returns an int.
/** * @param {number} num * @return {boolean} */var isPowerOfFour = function(num) { if(num <=0 ) { return false; } if(num === 1) { return true; } var log100 = Math.log(parseInt(num.toString(2)))/Math.log(100); return Math.abs(Math.round(log100) - log100) < 1e-10 ? true : false;};
- [LeetCode]Power of Four
- 342. Power of Four
- Power of Four-Leetcode
- LeetCode Power of Four
- LeetCode - Power of Four
- 113.Power of Four
- 342. Power of Four
- LeetCode342. Power of Four
- 342. Power of Four
- Power of Four
- leetcode_342 Power of Four
- LeetCode:Power of Four
- leetcode---Power of Four
- 342. Power of Four
- [LeetCode] Power of Four
- 342. Power of Four
- 342. Power of Four
- 【Leetcode】Power of Four
- easyui的tab加载页面中的form重复提交
- Volley使用笔记(二)
- sar命令查看网卡流量
- Plus One
- Implement Queue using Stacks
- Power of Four
- 陶哲轩实分析-第14章 一致收敛
- 欢迎使用CSDN-markdown编辑器
- Kth Largest Element in an Array
- leecode_307 Range Sum Query - Mutable
- HTTP协议详解(转载)
- Letter Combinations of a Phone Number
- Pascal's Triangle
- Remove Duplicates from Sorted Array