力扣: 231. 2的幂 【位运算】
题解:
你通过上图会发现:一个数只要是2的幂次方。那么经过n次除以2其结果终为1
且这个数对于2取余的结果一直是0
那么代码如下:
bool isPowerOfTwo(int n){if(n==0)return false;while(n%2==0){n=n/2;}if(n==1){return true;}else{return false;}
}
那么有没有更巧的方法呢?
同过上图你会发现只要是2的幂,其二进制的结果都是 前面一个1 后面都是0
那么会有如下的规律:
通过上图你会总结出如下的规律:
一个数n只要是2的幂那么 : n&(n-1)等于 0
代码如下:
bool isPowerOfTwo(int n){if(n<=0)return false;if(n==1)return true;if(n&(n-1)){return false;}else{return true;}
}
本文的总结来自于:https://www.bilibili.com/video/BV13s41197Ub
bool isPowerOfTwo(int n){return (n>0) &&(1<<30)%n==0; //它能被2的30次方(最大的二次幂)整除 说明它一定是2的整数幂
}
bool isPowerOfTwo(int n){return n>0 &&(n & -n) == n;
}
力扣: 231. 2的幂 【位运算】相关推荐
- 力扣- -231. 2的幂
力扣- -231. 2的幂 文章目录 力扣- -231. 2的幂 一.题目描述 二.问题分析 三.代码 方法一:暴力统计 方法二:位运算(获取二进制中最右边的 1) 方法三:位运算(去除二进制中最右边 ...
- 力扣231.2的幂 C语言
题目描述 给定一个整数,编写一个函数来判断它是否是 2 的幂次方. 示例 1: 输入: 1 输出: true 解释: 20 = 1示例 2:输入: 16 输出: true 解释: 24 = 16示例 ...
- 【231】判断是否是2的次幂--位运算相关
给你一个整数 n,请你判断该整数是否是 2 的幂次方.如果是,返回 true :否则,返回 false . 如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方. 示例 1: 输 ...
- 力扣 342.4的幂
题目描述 给定一个整数,写一个函数来判断它是否是 4 的幂次方.如果是,返回 true :否则,返回 false . 整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4x 示例 1:输 ...
- 力扣326.3的幂 C/C++
题目描述 给定一个整数,写一个函数来判断它是否是 3 的幂次方.如果是,返回 true :否则,返回 false . 整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x 示例 1:输 ...
- $力扣 LeetCode231. 2的幂 #在所有Java提交中击败了100%的用户 @FDDLC
题目描述: 231. 2的幂 - 力扣(LeetCode) (leetcode-cn.com) Java代码: class Solution {public boolean isPowerOfTwo( ...
- 【力扣】2的幂,3的幂,4的幂
一,循环法,通解-O(logN) 虽然这些题目中的进阶部分都说不用循环或者递归,但是对于3的幂这题来说,除非记得3的19次方是int型里最大的3的幂(然后判断n能不能被其整除),否则3的幂这题就只能用 ...
- LeetCode位运算(找出落单的数,二进制中1的个数,2的幂等)
文章目录 位运算理论+技巧介绍 1.与 & 2.异或 ^ 3.移位及综合运用(指定位置) 4.同或 开撸 1. lc136 只出现一次的数字 2. lc137 只出现一次的数字II 3. lc ...
- 力扣编程题-解法汇总
一.力扣链接: 题库 - 力扣 (LeetCode) 全球极客挚爱的技术成长平台 备注:以后每个工作日从前往后刷一道题,然后再加一道每日新题.每天两道题. 二.模版: 标题: 力扣解法汇总5-正则表达 ...
最新文章
- 新年新技术:MongoDB 3.0
- 杭电1010java实现dfs
- mysql binlog日志定时删除---计划任务
- JavaScript条形码生成插件 - 封装篇
- Python爬虫教程:验证码的爬取和识别详解
- 搭建自己的Nuget服务器
- mybatis 依赖于jdbc_第1章 MyBatis快速入门
- php获取页面指定内容,php 获取页面中的指定内容类
- Python 并发编程
- js和vue的图片加载完成事件
- 南方电网电费充值源码文档
- 微信小程序搜索框加跳转
- Lucene入门教程及java实现
- linux之pmap命令!
- golang windows 设置桌面背景和屏幕保护
- 笑能降血压,笑还能释放压力,减轻沮丧感;笑可以刺激人体分泌多巴胺,使人产生欣快感
- 网线传输速度测试_如何测验网线的好坏,传输速度等
- 程序员,5个步骤改善你的英语阅读技能
- Mysql日常巡检参考(持续更新)
- 电机专题:控制电机介绍