LeetCode 326. 3的幂
发布日期:2021-07-01 03:23:37 浏览次数:2 分类:技术文章

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

1. 题目

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

示例 1:输入: 27输出: true示例 2:输入: 0输出: false示例 3:输入: 9输出: true示例 4:输入: 45输出: false进阶:你能不使用循环或者递归来完成本题吗?

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/power-of-three

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

能整除以3的话,不断往下除,最后应该等于1

class Solution {
public: bool isPowerOfThree(int n) {
if(n < 1) return false; while(n%3 == 0) n /= 3; return n == 1; }};

或者把 int 最大的3的倍数拿出来 对n 取模

class Solution {
public: bool isPowerOfThree(int n) {
return n > 0 && 1162261467 % n == 0; }};

数字怎么来的?如下

int largest3 = pow(3, int(log(INT_MAX)/log(3)));        return n>0 && largest3%n == 0;

转载地址:https://michael.blog.csdn.net/article/details/105644651 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:LeetCode 345. 反转字符串中的元音字母
下一篇:LeetCode 327. 区间和的个数(multiset二分查找/归并排序)

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月19日 05时19分21秒