代码拉取完成,页面将自动刷新
package com.hit.basmath.interview.top_interview_questions.easy_collection.math;
/**
* 326. 3的幂
* <p>
* 给定一个整数,写一个函数来判断它是否是 3 的幂次方。
* <p>
* 示例 1:
* <p>
* 输入: 27
* 输出: true
* <p>
* 示例 2:
* <p>
* 输入: 0
* 输出: false
* <p>
* 示例 3:
* <p>
* 输入: 9
* 输出: true
* <p>
* 示例 4:
* <p>
* 输入: 45
* 输出: false
* <p>
* 进阶:
* 你能不使用循环或者递归来完成本题吗?
*/
public class _326 {
public boolean isPowerOfThree(int n) {
// 1162261467 is 3^19, 3^20 is bigger than int
// return (n > 0 && Math.pow(3, 19) % n == 0);
return (n > 0 && 1162261467 % n == 0);
}
public boolean isPowerOfThree2(int n) {
return (Math.log10(n) / Math.log10(3)) % 1 == 0;
}
public boolean isPowerOfThree3(int n) {
if (n < 1) {
return false;
}
while (n % 3 == 0) {
n /= 3;
}
return n == 1;
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。