打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
LeetCode 342.4的幂(简单)

题目描述:

给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 4 的幂次方需满足:存在整数 x 使得

示例 1:

输入:n = 16
输出:true

示例 2:

输入:n = 5
输出:false

示例 3:

输入:n = 1
输出:true

提示:

  • - <= n <= - 1

进阶:

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

题目分析:

这道题其实跟 LeetCode 326.3的幂(简单) 一模一样,利用对数解决此题,假设 ,如果 n4 的整数次方,那么 m 一定就是一个整数。所以,我们直接调用 Math.log10(n) / Math.log10(4) 并与 1 取余,如果余数为 0 则该数是 4 的幂次方当然也可以用循环很快就能解出此题, n%4 只要余数为 0,就一直将 n 除以 b 。因此,应该可以将 n 除以 b x 次,每次都有 0 的余数,最终结果是 1 。最后加一个判断,检查 n == 1,否则 while 循环将永远不会结束。

题解:

执行用时: 1 ms

内存消耗: 35.6 MB

class Solution {
    public boolean isPowerOfFour(int n) {
        // log10(n) 除于 Math.log10(4) 模 1 如果是 4 的幂则为 0
        return Math.log10(n) / Math.log10(4) % 1 == 0;
    }
}

题目来源:力扣(LeetCode)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
技术图文:位运算技术在求解算法题中的应用
​LeetCode刷题实战342:4的幂
leetcode - 整数反转
Matrix67: 几个精彩的数论问题
数学函数--python
通过示例学习 JavaScript 运算符 - 逻辑、比较、三元和更多 JS 运算符
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服