OJ : lintcode 二進制中有多少個1

計算在一個 32 位的整數的二進制表式中有多少個 1.

樣例
給定 32 (100000),返回 1
給定 5 (101),返回 2
給定 1023 (111111111),返回 9

class Solution {
public:
    /**
     * @param num: an integer
     * @return: an integer, the number of ones in num
     */
    deque<long long> tobinary(long long num){
        deque<long long> d;
        if(num<0){
             num=4294967296+num;
        }

        while(num!=0){
            //?????°
            int rem=num%2;
            //???
            int res=num/2;
            num=res;
            d.push_back(rem);
        }
        return d;
    }
    int countOnes(long long num) {
        // write your code here
        int counts=0;
        deque< long long> d=tobinary(num);
        for(auto it=d.rbegin();it!=d.rend();it++){
    //      cout<<*it<<" ";
            if((*it)==1){
                counts++;
            }
        }
        return counts;
    }
};
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容