您的位置:首页 > 其它

[LeetCode 326] Power of Three

2016-04-01 16:15 288 查看
题目:

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

Follow up:

Could you do it without using any loop / recursion?(更进一步,是否能不使用循环和递归)

递归做法:

bool isPowerOfThree(int n)
{
if (n == 1) return true;
if (n == 0) return false;
if (n % 3 == 0)
{
return isPowerOfThree(n / 3);//如果是3的某次方,最终返回到n==1 true;
}
return false;
}
利用除法求n的3次方跟,如果是正整数则返回true;

bool isPowerOfThree(int n)
{
double res = log(n) / log(3);
return abs(res - rint(res))< 0.0000000001; //rint 向远离0的方向取整
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: