342. Power of Four
- Total Accepted: 28742
- Total Submissions: 81051
- Difficulty: Easy
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?
Credits:
Special thanks to @yukuairoy for adding this problem and creating all test cases.
Subscribe to see which companies asked this question
求一个数是不是4 的乘方的结果(4 的k次幂)。即4^k = n;判断 k是不是一个整数 .
幂指乘方运算的结果。n^m指将n自乘m次(根据六下课本该式意义为m个n相乘)。把n^m看作乘方的 结果,叫做n的m次幂。
数学中的“幂”,是字面意思的引申,“幂”原指盖东西布巾,数学中“幂”是乘方的结果.
一、循环的除以4 整数
二、对数公式求解
对数公式求解时使用 C语言中的对数函数: log2(n) 或者 log10(n),注意这里只能够用2后者10作为底。
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 bool isPowerOfFour(int num) { 2 return ((int)log10(num)/2 -log10(num)/2 == 0); 3 }