【力扣:新动计划,编程入门 —— 题解 ③】
—— 25.1.26
231. 2 的幂
给你一个整数
n,请你判断该整数是否是 2 的幂次方。如果是,返回true;否则,返回false。如果存在一个整数
x使得n == 2x,则认为n是 2 的幂次方。示例 1:
输入:n = 1 输出:true 解释:20 = 1示例 2:
输入:n = 16 输出:true 解释:24 = 16示例 3:
输入:n = 3 输出:false提示:
-231 <= n <= 231 - 1
方法一 递归
思路与算法
Java实现
class Solution {public boolean isPowerOfTwo(int n) {if(n <= 0){return false;}if(n == 1){return true;}if(n % 2 == 1){return false;}else{return isPowerOfTwo(n / 2);}}
}

Python实现
class Solution:def isPowerOfTwo(self, n: int) -> bool:def pandas(n):if n <= 0:return Falseif n == 1:return Trueif n % 2 == 1:return Falseelse:return pandas(n // 2)return pandas(n)

方法二 二进制位运算
思路与算法
由于二进制编码为:0 / 1,则每个数字可以用二进制编码表示,而都为二的倍数的两数,满足n & (n - 1) == 0
如果 n > 0,可以用 n & (n - 1) = 0判断,若成立,则n是2的幂;若不成立,则n不是2的幂。
如果 n ≤ 0,n 不是 2 的幂。
Java实现
class Solution {public boolean isPowerOfTwo(int n) {if(n > 0){int temp = n & (n - 1);if(temp == 0){return true;}}return false;}
}
Python实现
class Solution:def isPowerOfTwo(self, n: int) -> bool:return n > 0 and n & (n - 1) == 0

326. 3 的幂
给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回
true;否则,返回false。整数
n是 3 的幂次方需满足:存在整数x使得n == 3^x示例 1:
输入:n = 27 输出:true示例 2:
输入:n = 0 输出:false示例 3:
输入:n = 9 输出:true示例 4:
输入:n = 45 输出:false提示:
-231 <= n <= 231 - 1
方法一 试除法
思路与算法
我们不断地将 n 除以 3,直到 n=1。如果此过程中 n 无法被 3 整除,就说明 n 不是 3 的幂。
本题中的 n 可以为负数或 0,可以直接提前判断该情况并返回 False,也可以进行试除,因为负数或 0 也无法通过多次除以 3 得到 1。
Python实现
class Solution:def isPowerOfThree(self, n: int) -> bool:while n != 0 and n % 3 == 0:n /= 3return n == 1

Java实现
class Solution {public boolean isPowerOfThree(int n) {while (n != 0 && n % 3 == 0) {n /= 3;}return n == 1;}
}

方法二:判断是否为最大 3 的幂的约数
思路与算法
在题目给定的 32 位有符号整数的范围内,最大的 3 的幂为
3 ^ 19 = 1162261467。我们只需要判断 n 是否是 3 ^ 19 的约数即可。
与方法一不同的是,这里需要特殊判断 n 是负数或 0 的情况。
Python实现
class Solution:def isPowerOfThree(self, n: int) -> bool:return n > 0 and 1162261467 % n == 0

Java实现
class Solution {public boolean isPowerOfThree(int n) {return n > 0 && 1162261467 % n == 0;}
}

263. 丑数
丑数 就是只包含质因数
2、3和5的 正 整数。给你一个整数
n,请你判断n是否为 丑数 。如果是,返回true;否则,返回false。示例 1:
输入:n = 6 输出:true 解释:6 = 2 × 3示例 2:
输入:n = 1 输出:true 解释:1 没有质因数。示例 3:
输入:n = 14 输出:false 解释:14 不是丑数,因为它包含了另外一个质因数 7提示:
-231 <= n <= 231 - 1
方法一 数学和遍历
思路与算法
根据丑数的定义,0 和负整数一定不是丑数。
当 n>0 时,若 n 是丑数,则 n 可以写成 n=2a × 3b × 5c的形式,其中 a,b,c 都是非负整数。特别地,当 a,b,c 都是 0 时,n=1。
为判断 n 是否满足上述形式,可以对 n 反复除以 2,3,5,直到 n 不再包含质因数 2,3,5。若剩下的数等于 1,则说明 n 不包含其他质因数,是丑数;否则,说明 n 包含其他质因数,不是丑数。
Python实现
class Solution:def isUgly(self, n: int) -> bool:if n == 0:return Falsewhile n % 2 == 0 or n % 3 == 0 or n % 5 == 0:if n % 2 == 0: n /= 2;if n % 3 == 0: n /= 3;if n % 5 == 0: n /= 5;return n == 1
Java实现
class Solution {public boolean isUgly(int n) {if(n == 0){return false;}while(n % 2 == 0 || n % 3 == 0 || n % 5 == 0){if(n % 2 == 0){n /= 2;}if(n % 3 == 0){n /= 3;}if(n % 5 == 0){n /= 5;}}return n == 1;}
}

相关文章:
【力扣:新动计划,编程入门 —— 题解 ③】
—— 25.1.26 231. 2 的幂 给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。 如果存在一个整数 x 使得 n 2x ,则认为 n 是 2 的幂次方。 示例 1: 输入:…...
数据库基础:从概念到 MySQL 实战
数据库基础:从概念到 MySQL 实战 在当今数字化时代,数据的重要性不言而喻,而数据库作为数据管理的核心工具,发挥着关键作用。对于技术爱好者和开发者来说,深入了解数据库知识是必不可少的。今天,就让我们一…...
Nacos统一配置管理
Nacos 统一配置管理 将一部分配置信息写到Nacos配置文件中,可以统一管理,并且这个文件支持热加载。 新建配置步骤:配置管理 -> 配置列表 -> 新建配置 Data ID(配置文件名id) 命名规范:服务名称-de…...
Centos7系统php8编译安装ImageMagick/Imagick扩展教程整理
Centos7系统php8编译安装ImageMagick/Imagick扩展教程整理 安装php8安装ImageMagick1、下载ImageMagick2、解压并安装3、查看是否安装成功 安装imagick扩展包 安装php8 点我安装php8 安装ImageMagick 1、下载ImageMagick wget https://www.imagemagick.org/download/ImageMa…...
android的gradle
Gradle User Manual gradle官网 这里有个gradlew很有用,因为这个可以在窗口中运行gradlew脚本 gradlew 和 gradlew.bat 都是 Gradle Wrapper(Gradle 包装器) 的一部分,它们的作用是让项目可以使用 Gradle 而无需提前在系统中…...
2025美赛MCM数学建模A题:《石头台阶的“记忆”:如何用数学揭开历史的足迹》(全网最全思路+模型)
✨个人主页欢迎您的访问 ✨期待您的三连 ✨ 《石头台阶的“记忆”:如何用数学揭开历史的足迹》 目录 《石头台阶的“记忆”:如何用数学揭开历史的足迹》 ✨摘要✨ ✨引言✨ 1. 引言的结构 2. 撰写步骤 (1)研究背景 &#…...
Python3 【高阶函数】项目实战:5 个学习案例
Python3 【高阶函数】项目实战:5 个学习案例 本文包含 5 个关于“高阶函数”的综合应用项目,每个项目都包含完整的程序代码、测试案例和执行结果。具体项目是: 成绩统计分析单词统计工具简易计算器工厂任务调度器数据管道处理 项目 1&#…...
ES6 类语法:JavaScript 的现代化面向对象编程
Hi,我是布兰妮甜 !ECMAScript 2015,通常被称为 ES6 或 ES2015,是 JavaScript 语言的一次重大更新。它引入了许多新特性,其中最引人注目的就是类(class)语法。尽管 JavaScript 一直以来都支持基于…...
【S32K3 RTD LLD篇7】K344中心对齐PWM中心点触发ADC BCTU采样
【S32K3 RTD LLD篇7】K344中心对齐PWM中心点触发ADC BCTU采样 一,文档简介二,中心对齐PWM中心点触发ADC原理2.1 如何生成中心对齐的PWM2.2 如何生成PWM中心点触发标志 三, 软件配置与实现3.1 Demo CT 模块配置3.1.1 引脚配置3.1.2 时钟配置3.…...
解决日志中 `NOT NULL constraint failed` 异常的完整指南
在开发和运维过程中,日志是我们排查问题的重要工具。然而,当日志中出现类似 NOT NULL constraint failed 的异常时,往往意味着数据库约束与代码逻辑不匹配。本文将详细分析此类问题的原因,并提供完整的解决方案。 © ivwdcwso (ID: u012172506) 问题描述 在同步 AWS …...
14-6-3C++STL的list
(一)list的插入 1.list.insert(pos,elem);//在pos位置插入一个elem元素的拷贝,返回新数据的位置 #include <iostream> #include <list> using namespace std; int main() { list<int> lst; lst.push_back(10); l…...
协助工具-任意门导航
任意门导航网址:随意门导航-最全的实用导航网站,好用简洁宝藏网址神器...
优化使用 Flask 构建视频转 GIF 工具
优化使用 Flask 构建视频转 GIF 工具 优化后的项目概述 在优化后的版本中,我们将实现以下功能: 可设置每个 GIF 的帧率和大小:用户可以选择 GIF 的帧率和输出大小。改进的用户界面:使用更现代的设计使界面更美观、整洁。自定义…...
unity学习20:time相关基础 Time.time 和 Time.deltaTime
目录 1 unity里的几种基本时间 1.1 time 相关测试脚本 1.2 游戏开始到现在所用的时间 Time.time 1.3 时间缩放值 Time.timeScale 1.4 固定时间间隔 Time.fixedDeltaTime 1.5 两次响应时间之间的间隔:Time.deltaTime 1.6 对应测试代码 1.7 需要关注的2个基本…...
【趋势】《2024—2026金融科技十大趋势预测》一览
本白皮书基于新华三在金融行业的前沿实践和IDC的全球研究成果,深入分析了金融科技领域的十大关键趋势,旨在为金融机构提供前瞻性的战略指导和业务创新的参考。 导言 当前,在地缘政治冲突加剧、商业经济市场环境高度不确定、数字化业务加速发展的背景下,金融行业处于深度变…...
Qt调用ffmpeg库录屏并进行UDP组播推流
基于以下参考链接,采用其界面和程序框架,实现实时推送UDP组播视频流,替换原拉流功能 https://blog.csdn.net/u012532263/article/details/102736700 源码在windows(qt-opensource-windows-x86-5.12.9.exe)、ubuntu20.…...
HarmonyOS:创建应用静态快捷方式
一、前言 静态快捷方式是一种在系统中创建的可以快速访问应用程序或特定功能的链接。它通常可以在长按应用图标,以图标和相应的文字出现在应用图标的上方,用户可以迅速启动对应应用程序的组件。使用快捷方式,可以提高效率,节省了查…...
mysql 学习6 DQL语句,对数据库中的表进行 查询 操作
前期准备数据 重新create 一张表 create table emp(id int comment 编号,workno varchar(10) comment 工号,name varchar(10) comment 姓名,gender char comment 性别,ager tinyint unsigned comment 年龄,idcard char(18) comment 身份证号,workaddress varchar(10) c…...
【ES实战】治理项之索引模板相关治理
索引模板治理 文章目录 索引模板治理问题现象分析思路操作步骤问题程序化方案索引与索引模板增加分片数校验管理 彩蛋如何查询Flink on Yarn 模式下的Task Manager日志相关配置查询已停止的Flink任务查询未停止的Flink任务 问题现象 在集群索引新建时,索引的分片比…...
springboot3 集成 knife4j(接口文档)
提示:文章是集成 knife4j,而非 swagger2 或者 swagger3,效果如图 文章目录 前言一、添加依赖二、如何集成1.配置文件2.注解部分1.Tag2.Operation3.Parameter4.Schema 3.使用 总结 前言 提示::大家在开发阶段ÿ…...
51单片机开发:独立键盘实验
实验目的:按下键盘1时,点亮LED灯1。 键盘原理图如下图所示,可见,由于接GND,当键盘按下时,P3相应的端口为低电平。 键盘按下时会出现抖动,时间通常为5-10ms,代码中通过延时函数delay…...
Flutter_学习记录_Tab的简单Demo~真的很简单
1. Tab的简单使用了解 要实现tab(选项卡或者标签视图)需要用到三个组件: TabBarTabBarViewTabController 这一块,我也不知道怎么整理了,直接提供代码吧: import package:flutter/material.dart;void main() {runApp(MyApp());…...
GESP2024年3月认证C++六级( 第三部分编程题(1)游戏)
参考程序: #include <cstdio> using namespace std; const int N 2e5 5; const int mod 1e9 7; int n, a, b, c; int f[N << 1]; int ans; int main() {scanf("%d%d%d%d", &n, &a, &b, &c);f[N n] 1;for (int i n; i…...
数据结构测试题2
一、单选题(每题 2 分,共20分) 1. 栈和队列的共同特点是( A )。 A.只允许在端点处插入和删除元素 B.都是先进后出 C.都是先进先出 D.没有共同点 2. 用链接方式存储的队列,在进行插入运算时( C ) A. 仅修改头指针 B. 头…...
Linux 系统服务开机自启动指导手册
一、引言 在 Linux 系统中,设置服务开机自启动是常见的系统配置任务。本文档详细介绍了多种实现服务开机自启动的方法,包括 systemctl 方式、通用脚本方式、crontab 方案等,并提供了生产环境下的方案建议和开机启动脚本示例。 二、systemct…...
项目概述与规划 (I)
项目概述与规划 (I) JavaScript的学习已经接近尾声了,最后我们将通过一个项目来讲我们在JavaScript中学习到的所有都在这个项目中展现出来,这个项目的DEMO来自于Udemy中的课程,作者是Jonas Schmedtmann; 项目规划 项目步骤 用户…...
【WebRTC - STUN/TURN服务 - COTURN配置】
在WebRTC中,对于通信的两端不在同一个局域网的情况下,通信两端往往无法P2P直接连接,需要一个TURN中继服务,而中继服务可以选用 COTURN 构建。 注:COTURN 是一个开源的 TURN(Traversal Using Relays around…...
【HuggingFace项目】:Open-R1 - DeepSeek-R1 大模型开源复现计划
项目链接:https://github.com/huggingface/open-r1 概述 Open-R1 是由 HuggingFace 发布的一个完全开放的项目,旨在通过三个主要步骤复现 DeepSeek-R1 的完整训练流程。这个项目的目标是让更多人能够理解和使用 DeepSeek-R1 的技术方案,从而…...
On to OpenGL and 3D computer graphics
2. On to OpenGL and 3D computer graphics 声明:该代码来自:Computer Graphics Through OpenGL From Theory to Experiments,仅用作学习参考 2.1 First Program Square.cpp完整代码 /// // square.cpp // // OpenGL program to draw a squ…...
计算机毕设【开题报告】怎么写?
本文将围绕如何编写计算机专业的开题报告展开,结合具体的步骤、方法技巧,并提供一个基于SpringBoot系统的完整示例,帮助大家顺利完成开题报告。 一、开题报告的核心结构 开题报告通常包括以下几个部分: 选题背景及意义 说明项目研…...


