码迷,mamicode.com
首页 > 其他好文 > 详细

326. Power of Three

时间:2016-07-04 00:56:39      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

题目:

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?

答案:

判断一个数是否是3的幂,不能用循环和递归:

     因为3是一个素数,所以一个数如果是3的幂,则它的任何约数也是3的幂。

     所以思路是求出int型的最大的3的幂,除以我们需要判断的数,如果余数为0,则该数为3的幂。

     或者用long long求一个比int的最大值还大的3的幂也可以。

1 class Solution {
2 public:
3     bool isPowerOfThree(int n) {
4         int max,m;
5         max=(numeric_limits<int>::max)(); 
6         m=pow(3,((int)(log(max)/log(3))));
7             return(n>0&& (m%n==0));
8     }
9 };

注意:^是位运算中的异或符号,不是求幂的符号。

326. Power of Three

标签:

原文地址:http://www.cnblogs.com/Reindeer/p/5639081.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!