326. Power of Three
Difficulty: Easy
确定一个整数是否为3的幂。
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) {
int m=1;
int a;
if(n<=0 || n==2)
return false;
if(n==1)
return true;
while(n>3 && n%3==0)
{
a=n;
m=1;
while(a>10) //得到n的位数m
{
a=a/10;
m++;
}
a=(int)pow((float)3,m);
if(n%a==0)
n=n/a; //n/(3^m)
else
return false;
}
if(n==3)
return true;
else
return false;
}
本段代码没有做到不使用循环或递归。待改进。。