#include <iostream>
#include <stdio.h>
#include <vector>
#include <string>
using namespace std;
/*
问题:
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?
分析:一个数如果能被4整除,则该数Num必定存在log4(Num)的值为0
注意都取10为底,取e为底,存在精度问题
输入:
16
5
输出:
true
false
关键:
1 一个数如果能被4整除,则该数Num必定存在log4(Num)的值为0
注意都取10为底,取e为底,存在精度问题
*/
class Solution {
public:
bool isPowerOfFour(int num) {
double result = log10(num) / log10(4);
return (result - (int)result) == 0 ? true : false;
}
};
void process()
{
int num;
Solution solution;
while(cin >> num )
{
bool result = solution.isPowerOfFour(num);
if(result)
{
cout << "true" << endl;
}
else
{
cout << "false" << endl;
}
}
}
int main(int argc , char* argv[])
{
process();
getchar();
return 0;
}
leecode 解题总结:342. Power of Four
最新推荐文章于 2023-04-26 09:47:59 发布