91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

定西市| 阿拉善左旗| 锡林郭勒盟| 兴城市| 华安县| 辛集市| 云安县| 高淳县| 阿拉尔市| 德钦县| 北宁市| 会东县| 彰化市| 封开县| 丘北县| 福海县| 巴里| 冀州市| 广昌县| 登封市| 定安县| 奇台县| 米林县| 安仁县| 汶上县| 根河市| 左权县| 吐鲁番市| 开江县| 永善县| 阳信县| 武乡县| 新兴县| 平潭县| 剑川县| 兰溪市| 丹寨县| 东乌珠穆沁旗| 河曲县| 江山市| 康定县|