题解:

你通过上图会发现:一个数只要是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的幂 【位运算】相关推荐

  1. 力扣- -231. 2的幂

    力扣- -231. 2的幂 文章目录 力扣- -231. 2的幂 一.题目描述 二.问题分析 三.代码 方法一:暴力统计 方法二:位运算(获取二进制中最右边的 1) 方法三:位运算(去除二进制中最右边 ...

  2. 力扣231.2的幂 C语言

    题目描述 给定一个整数,编写一个函数来判断它是否是 2 的幂次方. 示例 1: 输入: 1 输出: true 解释: 20 = 1示例 2:输入: 16 输出: true 解释: 24 = 16示例 ...

  3. 【231】判断是否是2的次幂--位运算相关

    给你一个整数 n,请你判断该整数是否是 2 的幂次方.如果是,返回 true :否则,返回 false . 如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方. 示例 1: 输 ...

  4. 力扣 342.4的幂

    题目描述 给定一个整数,写一个函数来判断它是否是 4 的幂次方.如果是,返回 true :否则,返回 false . 整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4x 示例 1:输 ...

  5. 力扣326.3的幂 C/C++

    题目描述 给定一个整数,写一个函数来判断它是否是 3 的幂次方.如果是,返回 true :否则,返回 false . 整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x 示例 1:输 ...

  6. $力扣 LeetCode231. 2的幂 #在所有Java提交中击败了100%的用户 @FDDLC

    题目描述: 231. 2的幂 - 力扣(LeetCode) (leetcode-cn.com) Java代码: class Solution {public boolean isPowerOfTwo( ...

  7. 【力扣】2的幂,3的幂,4的幂

    一,循环法,通解-O(logN) 虽然这些题目中的进阶部分都说不用循环或者递归,但是对于3的幂这题来说,除非记得3的19次方是int型里最大的3的幂(然后判断n能不能被其整除),否则3的幂这题就只能用 ...

  8. LeetCode位运算(找出落单的数,二进制中1的个数,2的幂等)

    文章目录 位运算理论+技巧介绍 1.与 & 2.异或 ^ 3.移位及综合运用(指定位置) 4.同或 开撸 1. lc136 只出现一次的数字 2. lc137 只出现一次的数字II 3. lc ...

  9. 力扣编程题-解法汇总

    一.力扣链接: 题库 - 力扣 (LeetCode) 全球极客挚爱的技术成长平台 备注:以后每个工作日从前往后刷一道题,然后再加一道每日新题.每天两道题. 二.模版: 标题: 力扣解法汇总5-正则表达 ...

最新文章

  1. 新年新技术:MongoDB 3.0
  2. 杭电1010java实现dfs
  3. mysql binlog日志定时删除---计划任务
  4. JavaScript条形码生成插件 - 封装篇
  5. Python爬虫教程:验证码的爬取和识别详解
  6. 搭建自己的Nuget服务器
  7. mybatis 依赖于jdbc_第1章 MyBatis快速入门
  8. php获取页面指定内容,php 获取页面中的指定内容类
  9. Python 并发编程
  10. js和vue的图片加载完成事件
  11. 南方电网电费充值源码文档
  12. 微信小程序搜索框加跳转
  13. Lucene入门教程及java实现
  14. linux之pmap命令!
  15. golang windows 设置桌面背景和屏幕保护
  16. 笑能降血压,笑还能释放压力,减轻沮丧感;笑可以刺激人体分泌多巴胺,使人产生欣快感
  17. 网线传输速度测试_如何测验网线的好坏,传输速度等
  18. 程序员,5个步骤改善你的英语阅读技能
  19. Mysql日常巡检参考(持续更新)
  20. 电机专题:控制电机介绍

热门文章

  1. docker-elk装IK自定义分词库
  2. 功能测试话题分享-0323
  3. 一份来自一月寒冬互联网一线的面经(附面试题)
  4. Go 1.4 正式版发布,官方正式支持 Android
  5. 每句话都可以品味一生
  6. 气死我的存储过程和用户定义函数
  7. 回调函数到底是怎么一回事呢
  8. ili9341代码移植注意事项
  9. linux设备驱动模型 - device/bus/driver
  10. php 获取动态时间,PHP 显示动态时间