news 2026/7/12 1:30:13

算法:判断一个数是不是2的幂

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
算法:判断一个数是不是2的幂

现在有一个数n,这个n是整数。所以要把正整数和负整数考虑在内,现在问这个n是不是2

的幂

现在对n的取值进行讨论,画出二的幂函数,可以看到当n小于等于0时,x无取值,所以小于等于0的n不是2的幂。所以只需要讨论n大于0时的情况即可。下面是三种解决方案

1循环法

bool isPowerOfTwo(int n) { if (n <= 0) return false; while (n % 2 == 0) n /= 2; return n == 1; }

2位运算

bool isPowerOfTwo(int n) { return n > 0 && (n & (n - 1)) == 0; }

原理:2 的幂的二进制只有一个 1,n & (n-1)会把最低位的 1 去掉,结果为 0。

3利用int_min

bool isPowerOfTwo(int n) { return n > 0 && (1 << 30) % n == 0; // 2^30 是 int 范围内最大的 2 的幂 }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/12 1:29:37

PDF补丁丁深度解析:专业级PDF处理引擎的架构设计与实战应用

PDF补丁丁深度解析&#xff1a;专业级PDF处理引擎的架构设计与实战应用 【免费下载链接】PDFPatcher PDF补丁丁——PDF工具箱&#xff0c;可以编辑书签、剪裁旋转页面、解除限制、提取或合并文档&#xff0c;探查文档结构&#xff0c;提取图片、转成图片等等 项目地址: https…

作者头像 李华
网站建设 2026/7/12 1:27:01

从零实现C++ JSON解析器:递归下降、内存管理与API设计实战

1. 项目概述与核心价值 如果你正在学习C&#xff0c;并且已经走过了语法基础、面向对象和STL容器这几个阶段&#xff0c;那么“实现一个JSON解析器”这个项目&#xff0c;绝对是你从“会用库”到“理解库”的关键一步。这不仅仅是完成一个作业&#xff0c;而是一次对C综合能力…

作者头像 李华
网站建设 2026/7/12 1:26:23

Unity 2D性能优化:SpriteAtlas、Tilemap与动画系统进阶实战

1. 项目概述&#xff1a;从静态美术到动态世界的构建核心在Unity 2D或2.5D项目的开发中&#xff0c;我们常常会遇到一个瓶颈&#xff1a;当美术资源越来越多&#xff0c;场景越来越复杂时&#xff0c;性能问题、资源管理混乱和开发效率低下会接踵而至。一个典型的场景是&#x…

作者头像 李华