博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode:Power of Three - 数字三的幂
阅读量:7033 次
发布时间:2019-06-28

本文共 1757 字,大约阅读时间需要 5 分钟。

hot3.png

1、题目名称

Power of Three(数字三的幂)

2、题目地址

3、题目内容

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

中文:给定一个整数,写一个函数判断该数是否为数字3的幂

4、解题方法1

对于本题而言,暴力破解法的效率并不算低。

Java代码如下:

/** * @功能说明:LeetCode 326 - Power of Three * @开发人员:Tsybius2014 * @开发时间:2016年1月11日 */public class Solution {    /**     * 判断数字是否为3的幂     * @param n     * @return     */    public boolean isPowerOfThree(int n) {        if (n <= 0) {            return false;        }        while (n != 0) {            if (n == 1) {                return true;             } else if (n % 3 != 0) {                return false;            } else {                n /= 3;            }        }        return true;    }}

5、解题方法2

有一种方法仅适用于判断数字是否为质数的幂。设有两个数字a和b,如果a是b的幂,那么只需要找到另外一个数x,满足x小于或等于Integer.MAX_VALUE,但x*b大于Integer.MAX_VALUE,如果a是b的幂,x%a一定是等于0的。Java语言中Integer的最大值是2147483647,大于3的19次幂为1162261467,小于3的20次幂3486784401。因此我们取1162261467作为这个数x

Java代码如下:

/** * @功能说明:LeetCode 326 - Power of Three * @开发人员:Tsybius2014 * @开发时间:2016年1月11日 */public class Solution {    /**     * 判断数字是否为3的幂     * @param n     * @return     */    public boolean isPowerOfThree(int n) {        if (n <= 0) {            return false;        } else {            return n > 0 && 1162261467 % n == 0; //1162261467=3^19        }    }}

6、解题方法3

下面的方法是我在讨论区里看到的一种比较有意思的方法。该方法先将数字转换为三进制的字符串,再用正则10*(意为1后面跟0个或n个0)匹配算出结果。

Java代码如下:

/** * @功能说明:LeetCode 326 - Power of Three * @开发人员:Tsybius2014 * @开发时间:2016年1月11日 */public class Solution {    /**     * 判断数字是否为3的幂     * @param n     * @return     */    public boolean isPowerOfThree(int n) {        if (n <= 0) {            return false;        } else {            return Integer.toString(n, 3).matches("10*");        }    }}

END

转载于:https://my.oschina.net/Tsybius2014/blog/601048

你可能感兴趣的文章
fix [Errno 13] Permission denied: '/var/log/glance/api.log'
查看>>
Cacti 0.8.8b 插件(monitor thold setting realtime)安装及邮件 短信告警
查看>>
我的友情链接
查看>>
很好的一个文字工具网址
查看>>
SQL Server 日志配置问题
查看>>
前辈文章摘要
查看>>
最新的计划群号,有需要的可以联系我加群
查看>>
CentOS 5.5安装配置Trac1.0
查看>>
我的友情链接
查看>>
超强整理:2012年网页设计趋势
查看>>
sqoop2 五分钟实例
查看>>
线性筛素数
查看>>
通过Windows 8 Powershell轻松创建USB引导盘
查看>>
基础总结篇之二:Activity的四种launchMode
查看>>
理解python中可变对象作为默认参数
查看>>
C++ 操作Office的Access数据库
查看>>
iOS开发——keychain的使用
查看>>
avahi-daemon服务
查看>>
Elasticsearch初步使用(安装、Head配置、分词器配置)
查看>>
论坛外链如何才能快速收录?
查看>>