__builtin_popcount()是 GCC 編譯器的內(nèi)置函數(shù)。它可以返回輸入數(shù)據(jù)中,無符號二進制中‘1’的個數(shù)。
嵩縣ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!二、使用場景:使用一個二進制數(shù)字表示一個集合的時候,枚舉一個組合(子集),需要判斷這個數(shù)字里面的 1 的個數(shù)是不是和子集的大小相等。
三、應(yīng)用LeetCode 762. 二進制表示中質(zhì)數(shù)個計算置位
給你兩個整數(shù) left 和 right ,在閉區(qū)間 [left, right] 范圍內(nèi),統(tǒng)計并返回 計算置位位數(shù)為質(zhì)數(shù) 的整數(shù)個數(shù)。計算置位位數(shù) 就是二進制表示中 1 的個數(shù)。
例如, 21 的二進制表示 10101 有 3 個計算置位。
示例 1:
輸入:left = 6, right = 10
輸出:4
解釋:
6 ->110 (2 個計算置位,2 是質(zhì)數(shù))
7 ->111 (3 個計算置位,3 是質(zhì)數(shù))
9 ->1001 (2 個計算置位,2 是質(zhì)數(shù))
10->1010 (2 個計算置位,2 是質(zhì)數(shù))
共計 4 個計算置位為質(zhì)數(shù)的數(shù)字。
AC1:
class Solution {public:
int countPrimeSetBits(int left, int right) {int ans = 0;
for (int x = left; x<= right; ++x) {if ((1<< __builtin_popcount(x)) & 665772) {++ans;
}
}
return ans;
}
};
AC2:
class Solution {public:
int countPrimeSetBits(int L, int R) {int res=0;
for(int i=L;i<=R;i++)
res+=(665772>>__builtin_popcount(i))&1 ;
return res;
}
};
說明:665772 的二進制表示如下
位數(shù) | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
665772 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 |
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
當(dāng)前文章:什么是C++-創(chuàng)新互聯(lián)
本文地址:http://jinyejixie.com/article44/ccpghe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、品牌網(wǎng)站設(shè)計、網(wǎng)站排名、網(wǎng)站設(shè)計公司、關(guān)鍵詞優(yōu)化、App設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容