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

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

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

#include<iostream>
#include<vector>
using namespace std;

int main()
{  
    vector<int> res;
    int m = 0;
    int n;
    int a;
    cin >> a;
    //方法一:十进制转化为二进制,算二进制中1的个数
     while(a != 0)
     {
         n = a % 2;
         res.push_back(n);
         a = a/2 ;
     }
     for(int a : res)
     {
         if(a == 1)
         {m++;}
     }
    //方法二,位运算
   	//while(a)
   	//{
   	//    m++;
   	//    a = a&(a-1);
   	//}
    cout << m;
    return 0;
}


全部评论

相关推荐

喜欢飞来飞去的雪碧在刷代码:可以试一试字节
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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