关关的刷题日记 85 – Leetcode 326. Power of Three

关关的刷题日记85 – Leetcode 326. Power of Three

题目

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

Follow up: Could you do it without using any loop / recursion?

题目的意思是给定一个整数,判断它是否是3的幂。能否不用递归或者循环来解决这个问题?

方法1:写了个递归的版本。

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

方法2:我们可以找到INT_MAX以内的最大的3的幂=3intlog3INT_MAX = 1162261467,如果一个数是3的幂,那么它一定可以被1162261467整除。

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

照顾好自己的身体,控制好自己的情绪,加油!

以上就是关关关于这道题的总结经验,希望大家能够理解,有什么问题可以在我们的专知公众号平台上交流或者加我们的QQ专知-人工智能交流群 426491390,也可以加入专知——Leetcode刷题交流群(请先加微信小助手weixinhao: Rancho_Fang)。 同时请,关注我们的公众号,获取最新关于专知以及人工智能的资讯、技术、算法等内容。扫一扫下方关注我们的微信公众号。

图片

展开全文
相关主题
Top
微信扫码咨询专知VIP会员