判断一个数是否是3的n次幂
这里我用了一点巧,所有的int范围的3的n次幂是int范围最大的3的n次幂数(即3^((int)log3(MAXINT)) = 1162261467)的约数
这种方法是我目前觉得是最好的,不容易出错,其他的方法因为精度问题而很容易错。
1 class Solution { 2 public: 3 bool isPowerOfThree(int n) { 4 if(n>0) return 1162261467%n==0; 5 else return false; 6 } 7 };