标签:
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?
思路1:利用递归函数解决问题,如果n<=0,返回false。如果n==1,返回true。如果n能够被3整除,用n/3递归调用函数。否则,说明n不能被3整除,自然不可能是3的幂,返回false。
class Solution { public: bool isPowerOfThree(int n) { if(n<=0) return false; if(n==1) return true; if(n%3==0) return isPowerOfThree(n/3); return false; } };
class Solution { public: bool isPowerOfThree(int n) { if(n<1) return false; return n==pow(3,round(log(n)/log(3))); } };
标签:
原文地址:http://www.cnblogs.com/zhoudayang/p/5126842.html