题解 | #求int型正整数在内存中存储时1的个数#

求int型正整数在内存中存储时1的个数

http://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9

小结

BitSet即位图,是一个很长的“0/1”序列,他的功能就是存储0或者1。

bitset 转换成string,然后find出1的个数

using namespace std;
int main()
{
    int in_n;
    while(cin >> in_n)
    {
        bitset<32> b0(in_n);
        string s = b0.to_string();
        // 输出二进制
        int count = 0;
        size_t pos = s.find("1");
        while(pos!=s.npos)
        {
            count++;
            s =s.substr(1+pos,s.size());
            pos = s.find("1");
        }
        cout << count << endl;
    }
    return 0;
}
全部评论

相关推荐

owwhy:难,技术栈在嵌入式这块显得非常浅,并且简历有大问题。教育经历浓缩成两行就行了,写什么主修课程,说的不好听这块没人在意,自我评价删了,项目写详细点,最终简历缩成一页。相关技能怎么说呢,有点差了,还写成这么多行
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务