2的n次冪,判斷一個數是否能寫成m個2相乘,LeetCode 231號問題 給定一個整數,編寫一個函式來判斷它是否是 2 的冪次方。
2的n次冪,判斷一個數是否能寫成m個2相乘,LeetCode 231號問題
給定一個整數,編寫一個函式來判斷它是否是 2 的冪次方。
示例 1:
輸入: 1
輸出: true
解釋: 20 = 1
示例 2:
輸入: 16
輸出: true
解釋: 24 = 16
示例 3:
輸入: 218
輸出: false
解決思路:
2的n次冪,想想下他的的2進製表示方式,它只能有一個位為1,其餘位都為零,兒n-1則在1之後的所有位置都為1,則有 n&(n-1) == 0
程式碼如下:
code
class Solution { public boolean isPowerOfTwo(int n) { if (n>0){ return (n & (n-1)) == 0 ; }else{ return false; } } }
相關推薦
2的n次冪,判斷一個數是否能寫成m個2相乘,LeetCode 231號問題 給定一個整數,編寫一個函式來判斷它是否是 2 的冪次方。
2的n次冪,判斷一個數是否能寫成m個2相乘,LeetCode 231號問題 給定一個整數,編寫一個函式來判斷它是否是 2 的冪次方。 示例 1: 輸入: 1 輸出: true 解釋: 20 = 1 示例 2: 輸入: 16 輸出: true 解釋: 24 = 16 示例 3:
判斷一個數是否能被另一個整數整除是一個挺簡單的問題,一般一個模運算就可以搞定了,懶惰的曉萌還是不想自己做,於是找到你幫他寫程式碼,你就幫幫他吧。
判斷一個數是否能被另一個整數整除是一個挺簡單的問題,一般一個模運算就可以搞定了,懶惰的曉萌還是不想自己做,於是找到你幫他寫程式碼,你就幫幫他吧。 輸入格式 輸入包括兩個由空格分開的整數 M 和N(1≤M,N≤500)。 輸出格式 輸出包括一行,如果 M 可以被 N 整除就
[計蒜客] Python 判斷一個數是否能被另一個整數整除是一個挺簡單的問題
問題描述: 判斷一個數是否能被另一個整數整除是一個挺簡單的問題,一般一個模運算就可以搞定了,懶惰的曉萌還是不想自己做,於是找到你幫他寫程式碼,你就幫幫他吧。 輸入格式: 輸入包括兩個由空格分開的整數 MMM 和 N(1≤M,N≤500)N(1\leq M,
求一個數最少能表示成幾個數的平方和(比如5=1+4,返回2)
bool is_sqrt(long long n) { int m = sqrt(n); if (m*m == n) return true; else
判斷一個數是否能分解為某個連續正整數序列之和
#include <stdio.h> void fun( int n ) { int j, b, c, m, flag=0; for (b=1; b<=n/2; b++) { m = n; c = b;
面試:快速判斷一個數是否是2的冪次方,若是,並判斷出來是多少次方!
/********************************************************************** 將2的冪次方寫成二進位制形式後,很容易就會發現有一個特點: 二進位制中只有一個1,並且1後面跟了n個0; 因此問題可以轉化為判斷1後
判斷一個數是否是2的整數次冪,python實現。
問題:判斷一個數是否是2的整數次冪? 分析一:判斷一個數是否是是2的整數次冪。方法和思路也很多,其中最簡單的就是,用這個數除以2用除的商再除以2,直到最後被除數為2,證明這個數是2的整數次冪。這種思路
矩陣找數--一個m*n的矩陣,從左到右從上到下都是遞增的,給一個數x,判斷x是否在矩陣中。要求效率儘可能的高。
思路一:迴圈找 效率差 思路二: 因為從左到右從上到下都是遞增的。 所以用數字和右上角的數字比較 如果要找的數字是7,則數字先與9比。比9小說明在9的左側。 再與8比,比8小,說明在8的左側。 與2比,比2大,在2的下側。 比4大,在4的下側
python判斷一個數是否是2的幾次冪
判斷一個數是不是2的幾次冪,最簡單粗暴的做法就是直接迭代除以2,這裡有一個更好的方法,那就是採用位運算。 我們觀察下面屬於2的幾次冪的數的變化規律,用2進製表示。 十進位制 二進位制 0 0 2 10 4
一個m*n的矩陣,從左到右從上到下都是遞增的,給一個數x,判斷x是否在矩陣中。(高效率)
這樣的矩陣可以使用一個二維陣列儲存,知道了矩陣的特點,選取一個元素時可以將矩陣分割槽 可以看到隨意選一個元素的話會分成四個區域,陰影部分是可能的區域,深色的是確定比要查詢的大或者小,淺色陰影是有可能,所以下一步的動作很難確定,因此,隨意取一個點進行比較然後
如何判斷一個數是否為2的冪次方
最近在OJ上做題,遇到一道題,其中一個細節就是需要判斷一個數是否為2的冪次方。初看似乎很簡單,可我想來想去,竟然無甚好辦法。最後我用一個笨辦法解決了,那就是將2 4 8 16 32… …存到一個數組裡,遍歷一遍陣列就知道了。但是這個辦法著實不優美。 下面介紹一個好辦法
給40億個不重複的無符號整數,沒排過序。給一個無符號整數,如何快速判斷一個數是否在這40億個數中。 【騰訊】
40億佔多少個位元組:4G 10個億需要1G 一個整型需要4個位元組,40億個則需要16G 由於如果我們直接使用這種方式去儲存需要16個G顯然這是不可能的,因此我們需要用到下面的方式去儲存,採用點陣圖 我們用一個Bit位去標識一個數存在還是不存在 我們
Java 求1-100以內的所有素數,判斷一個數是不是素數。Java程式碼實現附測試結果圖
質數(prime number)又稱素數,有無限個。 質數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數的數稱為質數。 小師弟問了我個這麼個聯絡題,雖然看似簡單,但是,大家都覺得簡單的東西
c語言:實現一個函式,判斷一個數是不是素數。
實現一個函式,判斷一個數是不是素數。程式:#include<stdio.h>#include<math.h>int prime(intnum) //prime表示素數{int i
巧用&符號,判斷一個數的奇偶性,判斷一個數(x)是否是2的n次方
判斷一個數的奇偶性,是在C++ PRIMER習題集看見的,感覺有意思: 假設有一個整數x哈,假設 那麼就有:if(x&1) cout<<"奇數"<<endl;
ios中判斷一個數是否是整數,是整數那麼只顯示整數部分。否則顯示小數點後面一位
float num=12.0; float i=roundf(num);//對num取整 if (i==num) { lb_fa
java 判斷一個數是否是2的整數次冪
有一道演算法題是這樣的,求一個數是否是2的整數次冪。 剛開始我的演算法是這樣寫的: 讓這個數每次都除以2,然後再乘以2,看這兩個數是否相等,不相等就返回false。放在迴圈裡面讓它從頭除到尾。 publicboolean isPower(int number){
2. 編寫方法int fun(int n)判斷一個數n是否完數,是返回1,不是返回0。要求在main方法中呼叫fun方法求出2~1000中所有的完數,並輸出。
import java.util.Scanner;public class He2 {public static void main(String[] args) { System.out.println("1000以內的完數如下:");
JS中,如何判斷一個數是不是小數?如果是小數,如何判斷它是幾位小數??
nts text else lin var length code 判斷 alt <script type="text/javascript"> var x = 4.23323;//測試的數字 var y = String(x).indexOf(
習題4 編寫一個方法method(),判斷一個數能否同時被3和5整除
true ati rgs 同時 [] 返回 運算符 pri void 編寫一個方法method(),判斷一個數能否同時被3和5整除 首先編寫一個方法method(),由於是判斷,所以返回的數據類型應是波爾型,並且向主方法傳一個整數類型的參數X public class Z