陣列中值為2的n次冪的元素個數

2021-07-07 03:50:17 字數 346 閱讀 6768

剛開始想到的是用2個for迴圈,外層用2的n次冪,內層用陣列,去比對,如果相等則統計值++。後來想到無法判斷n的界限,想要獲知n的界限還要知道陣列的最大值,就牽扯到陣列的排序了。

理順思路後,分拆一下解題步驟,第一步對陣列排序,使陣列單調遞增;第二步判斷2的n次冪個數。

#include #include #include void bubblesort(int *array, unsigned int len)

for (i=0; iarray[j]) }}

}int pow_num(int *array, unsigned int len)

for (i=0, n=0; i

計算2的n次冪

在計算2的n次冪的時候,我們可以採用pow這個函式,但是當資料太大的時候顯然int double 等這些資料型別並不能儲存下來,就會出現問題,這個時候可以採取陣列儲存的方式。1.使用pow函式。pow x,y 為計算x的y次冪。如 pow 2,3 為計算2的3次冪。2.使用陣列儲存。核心演算法是 我...

關於2的n次冪對齊

記憶體對齊時基本都會求關於n位對齊的向上取整 go1.13.8 中channel原始碼中有這樣乙個變數hchansize用來表示hchan channel對應的實際結構體 所需大小 申請記憶體空間時,是根據hchansize給hchan申請對應大小的記憶體空間 這個變數的值大概就是hchan的siz...

HashMap 容量為2次冪的原因

我們都知道 hashmap 的底層是乙個陣列加鍊表的結構,當向其中新增乙個元素的時候,需要根據key的hash值,去確定其在陣列中的具體位置。看原始碼,我們可以發現,確定陣列位置的實現是i n 1 hash,其中 n 代表陣列的長度,即map的容量。當n為2的冪次方時,n 1 hash 的值是均勻分...