日拱一卒(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

相关推荐
恰薯条的屑海鸥1 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十六期-SSRF模块)
数据库·学习·安全·web安全·渗透测试·网络安全学习
喜欢吃燃面2 小时前
C++刷题:日期模拟(1)
c++·学习·算法
2301_797604243 小时前
学习记录:DAY32
学习
蓝婷儿3 小时前
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
开发语言·python·学习
叶子2024224 小时前
学习使用YOLO的predict函数使用
人工智能·学习·yolo
jackson凌4 小时前
【Java学习笔记】SringBuffer类(重点)
java·笔记·学习
黑客老李6 小时前
JavaSec | SpringAOP 链学习分析
java·运维·服务器·开发语言·学习·apache·memcached
海的诗篇_6 小时前
移除元素-JavaScript【算法学习day.04】
javascript·学习·算法
傍晚冰川7 小时前
FreeRTOS任务调度过程vTaskStartScheduler()&任务设计和划分
开发语言·笔记·stm32·单片机·嵌入式硬件·学习
月初,7 小时前
MongoDB学习和应用(高效的非关系型数据库)
学习·mongodb·nosql