二進位制問題

2021-09-12 13:07:52 字數 739 閱讀 8460

題目:

題解:

純二進位制題目。因為所有的水都是由兩份相同的水合併而成的,因此每瓶水的體積一定是2^i,(i\in n)2 i ,(i∈n)公升。最後保留k個瓶子,那麼最後總的公升數的二進位制表示中,1的個數一定<=k。

本題實質上是用不超過k個1和無數個0生成乙個最接近且大於n的二進位制數

方法一:

#includeusing namespace std;

//本題實質上是用不超過k個1和無數個0生成乙個最接近且大於n的二進位制數

int main()

{ long long n,k,s=0,mi=2000000000;

long long a[32];

bool b[32];

memset(b,false,sizeof(b));

a[0]=1;

for(int i=1;i<=31;i++) a[i]=a[i-1]<<1;

cin>>n>>k;

while(n>0&&s=0) k--;

//檢索第i位標記為零時,應該將哪一位標記為1才能更接近n

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...

二進位制有關問題

有1000瓶液體,味,外表完全 樣,其中 瓶是毒藥,有10 條警 警 喝過毒藥後兩 時後死亡。問,如何在兩個 時後確定 哪瓶是毒藥 解法 因為有1000瓶液體。10條警犬。分別給這1000瓶液體編號,為 1 10000 用二進位制表示 10位就夠了。因為2 10 1024 給這10只警犬分別編號 1...

LeetCode 二進位制問題

338.counting bits 計算小於n的各個數值對應的二進位制1的個數 思路 通過奇偶判斷,if i是偶數,a i a i 2 if i是奇數,a i a i 1 1。class solution return res 136.single number 只有乙個元素出現1次,其他出現2次,...