前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >两分钟看完一道投机取巧的算法题

两分钟看完一道投机取巧的算法题

作者头像
五分钟学算法
发布2019-05-13 14:44:25
2790
发布2019-05-13 14:44:25
举报
文章被收录于专栏:五分钟学算法

3 的幂

题目来源于 LeetCode 上第 326 号问题:3 的幂。题目难度为 Easy,目前通过率为 43.5% 。

题目描述

给定一个整数,写一个函数来判断它是否是 3 的幂次方。

示例 1:

代码语言:javascript
复制
输入: 27
输出: true

示例 2:

代码语言:javascript
复制
输入: 0
输出: false

进阶: 你能不使用循环或者递归来完成本题吗?

题目解析

正常的思路是不停地去除以 3,看最后的迭代商是否为 1。这种思路的代码使用到了循环,逼格不够高。

这里取巧的方法 用到了数论的知识:3 的幂次的质因子只有 3

题目要求输入的是 int 类型,正数范围是 0 - 231,在此范围中允许的最大的 3 的次方数为 319 = 1162261467 ,那么只要看这个数能否被 n 整除即可。

代码实现

代码语言:javascript
复制
class Solution {
    public boolean isPowerOfThree(int n) {
         return n > 0 && 1162261467 % n == 0;
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-04-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 五分钟学算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 3 的幂
    • 题目描述
      • 题目解析
        • 代码实现
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档