亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

統計一個整數二進制中1的個數

發布時間:2020-07-20 13:22:43 來源:網絡 閱讀:556 作者:銀河星君 欄目:編程語言

輸入一個非負整數num,對于每一個i,0<=i<=num,計算i的二進制表示中,有幾個‘1’,例如輸入num=5,輸出0,1,1,2,1,2。

#include <iostream>

using namespace std;
// 解法1
int countOne(int num)
{
    int count = 0;
    while ( num )
    {
        // 當最后一位為1時,則加1
        if( num & 1 ){
            ++count;
        }
        num >>= 1;
    }
    return count;
}
/* 解法2,比如當二進制中的1只有一個時,num & (num - 1)會等于0,以此判斷即可。
 * 比如:    0000 0100
 *        & 0000 0011
 *        = 0000 0000
 */
int countOne2(int num)
{
    int count = 0;
    while ( num )
    {
        num &= (num - 1) ;
        ++count;
    }

    return count;
}

int main(int argc, char *argv[])
{
    int i,num;
    cout << "請輸入num:" << endl;
    cin>>num;
    cout<<"解法一:"<<endl;
    for(i=0;i<=num;i++)
    {
        cout<<countOne(i)<<",";
    }
    cout<<endl;
    cout<<"解法二:"<<endl;
    for(i=0;i<=num;i++)
    {
        cout<<countOne2(i)<<",";
    }
    return 0;
}

統計一個整數二進制中1的個數

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

登封市| 阿巴嘎旗| 达州市| 长葛市| 同江市| 彰化县| 城步| 东明县| 平利县| 四平市| 吉水县| 万全县| 赣州市| 德阳市| 宜州市| 韶关市| 简阳市| 民和| 昌图县| 长汀县| 都昌县| 全南县| 新民市| 扶余县| 驻马店市| 望城县| 铁力市| 通州区| 广灵县| 大新县| 富锦市| 永登县| 慈利县| 神池县| 龙山县| 安丘市| 井陉县| 芜湖县| 聂荣县| 彰化县| 石家庄市|