力扣: 231. 2的幂 【位运算】
生活随笔
收集整理的這篇文章主要介紹了
力扣: 231. 2的幂 【位运算】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題解:
你通過上圖會發現:一個數只要是2的冪次方。那么經過n次除以2其結果終為1
且這個數對于2取余的結果一直是0
那么代碼如下:
那么有沒有更巧的方法呢?
同過上圖你會發現只要是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的幂 【位运算】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 力扣: 88. 合并两个有序数组
- 下一篇: 力扣 : 283. 移动零