【LeetCode】326. 3 的幂

news/2024/10/31 5:27:38/

326. 3 的幂(简单)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

方法一:试除法

思路

  • 我们可以先进行特殊点判断,n <= 0 的数都不可能是 3 的幂次方。
  • 接着,当 n > 0 n 能被 3 整除 时,我们对其整除 3 ,直到该条件不满足,我们就判断此时的 n, 如果 n == 1 ,即 30 ,说明原本的 n 是 3的幂次方。

代码

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

方法二:倍数 & 约数

题目要求不能使用循环递归,而传参 n 的数据类型为 int,这引导我们首先分析出 int 范围内的最大 3 次幂是多少,约为 319=11622614673 。

如果 n 为 3 的幂的话,那么必然满足 n∗3k=1162261467,即 n 与 1162261467 存在倍数关系

因此,我们只需要判断 n 是否为 1162261467 的约数即可。

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

收获

  • 这道题理解起来很简单,但是一开始我陷入了一个误区,以为 -27 之类的数也是 3 的幂次方,导致算不出来。

  • 此外,投机取巧的方法二也需要掌握。

参考资料

宫水三叶:一题三解


http://www.ppmy.cn/news/70176.html

相关文章

基于matlab的长短期神经网络的三维路径跟踪预测

目录 背影 摘要 LSTM的基本定义 LSTM实现的步骤 基于长短期神经网络LSTM的三维路径跟踪预测 MATALB代码 效果图 结果分析 展望 参考论文 背影 路径跟踪是指通过计算机算法&#xff0c;。长短期记忆模型对复杂&#xff0c;非线性运动的目标跟踪&#xff0c;解决目标跟踪困难&a…

抓取动态网页的数据的具体操作方法

抓取动态网页的数据的具体操作方法 动态网页是指在用户交互过程中&#xff0c;网页内容不断更新和变化的网页。抓取动态网页的数据需要了解以下具体操作方法&#xff1a; 使用浏览器开发者工具&#xff1a;在浏览器中打开目标网页后&#xff0c;按下F12键&#xff0c;打开开发…

『python爬虫』20. 用协程爬取一本小说(保姆级图文)

目录 1. 分析目标网站1.1 寻找所有章节信息1.2 寻找章节内容 2. 爬虫思路获取得到的信息首先要同步协程获取所有章节标题和cid写入异步任务然后根据章节标题和cid获取章节内容 3. 完整实现代码总结 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 欢迎关注 『python爬虫』…

使用Spring Boot快速搭建项目:减少配置,提升开发效率

使用Spring Boot快速搭建项目&#xff1a;减少配置&#xff0c;提升开发效率 一、Spring Boot简介1 Spring Boot的起源2 Spring Boot的核心特点3 Spring Boot的优势 二、Spring Boot快速搭建项目1 Spring Boot的项目搭建方式使用Spring Initializr创建项目使用Spring Boot CLI创…

零死角玩转stm32中级篇4-ADC和DAC

本篇博文目录: 一.ADC的基础概念1.什么是ADC2.在单片机中我们一般使用ADC技术来做什么?3.怎么查看单片机的某一个引脚是否具有ADC功能4.ADC采集和引脚数据的读取有什么区别5.单片机内部采用的是数字信号&#xff0c;为什么还要采用ADC进行转换6.ADC的分类7.ADC的工作原理8.ADC…

Sentinel———隔离和降级

FeignClient整合Sentinel SpringCloud中&#xff0c;微服务调用都是通过Feign来实现的&#xff0c;因此做客户端保护必须整合Feign和Sentinel。 第一步 修改OrderService的application.yml文件&#xff0c;开启Feign的Sentinel功能&#xff08;消费者服务&#xff09; feig…

华为OD机试真题 Java 实现【最小的调整次数】【2023Q1 100分】

一、题目描述 有一个特异性的双端队列&#xff0c;该队列可以从头部或尾部添加数据&#xff0c;但是只能从头部移出数据。 小A依次执行2n个指令往队列中添加数据和移出数据。 其中n个指令是添加数据 (可能从头部添加、也可能从尾部添加)&#xff0c;依次添加1到n&#xff0c…

ASEMI代理LTC3309AEV#TRMPBF原装ADI车规级LTC3309AEV#TRMPBF

编辑&#xff1a;ll ASEMI代理LTC3309AEV#TRMPBF原装ADI车规级LTC3309AEV#TRMPBF 型号&#xff1a;LTC3309AEV#TRMPBF 品牌&#xff1a;ADI /亚德诺 封装&#xff1a;LQFN-12 批号&#xff1a;2023 安装类型&#xff1a;表面贴装型 引脚数量&#xff1a;12 工作温度:-4…