日拱一卒(13)——leetcode学习记录:3的幂

一、题目

判断一个整数n是否是3的幂次

二、思路

  1. 循环法。n如果能被3整除,则继续整除,否则返回False。

  2. 数学法。不同于2的幂次,无法使用按位与进行判断。使用log计算也存在精度问题,无法实现。这里可以使用3^19的因数进行判断。

三、题解

  1. 循环法

    class Solution:
    def isPowerOfThree(self, n: int) -> bool:
    while n > 2:
    if n%3 != 0:
    return False
    n //= 3
    return n == 1

  2. 数学法

class Solution:

def isPowerOfThree(self, n: int) -> bool:

return n > 0 and (3**19)%n == 0

相关推荐
一川月白7091 分钟前
51单片机---硬件学习(跑马灯、数码管、外部中断、按键、蜂鸣器)
单片机·学习·51单片机·外部中断·蜂鸣器·数码管·跑马灯
励志不掉头发的内向程序员11 分钟前
STL库——二叉搜索树
开发语言·c++·学习
ホロHoro1 小时前
学习笔记:MYSQL(4)
笔记·学习·mysql
aaaweiaaaaaa2 小时前
c++基础学习(学习蓝桥杯 ros2有C基础可看)
c++·学习·蓝桥杯·lambda·ros2·智能指针·c++类
MadPrinter2 小时前
SpringBoot学习日记 Day11:博客系统核心功能深度开发
java·spring boot·后端·学习·spring·mybatis
wanzhong23333 小时前
ArcGIS学习-18 实战-降雨量空间分布插值分析
学习·arcgis
wanzhong23333 小时前
ArcGIS学习-19 实战-表面分析
学习
我命由我123454 小时前
Photoshop - Photoshop 创建文档
学习·ui·课程设计·设计·photoshop·ps·美工
@ZzHhXx4 小时前
嵌入式学习---(硬件)
学习
励志不掉头发的内向程序员4 小时前
C++进阶——多态
开发语言·c++·学习