中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

統計一個整數二進制中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

浦东新区| 西乌珠穆沁旗| 宁南县| 济宁市| 平定县| 马尔康县| 望江县| 青冈县| 铁岭市| 灵宝市| 杭锦后旗| 体育| 准格尔旗| 阳谷县| 孝感市| 全州县| 九寨沟县| 河西区| 乳源| 安陆市| 富源县| 伊川县| 宣恩县| 呼玛县| 宾川县| 柳河县| 游戏| 鄂州市| 昌宁县| 东港市| 延川县| 巩义市| 贞丰县| 沈阳市| 绍兴市| 招远市| 军事| 呼伦贝尔市| 全南县| 新营市| 五原县|