题解 | 查找输入整数二进制中1的个数

查找输入整数二进制中1的个数

https://www.nowcoder.com/practice/1b46eb4cf3fa49b9965ac3c2c1caf5ad

// 活动地址: 牛客春招刷题训练营 - 编程打卡活动
#include<iostream>
#include<algorithm>
#include<set>

using namespace std;

void solve(){
    int n,m;
    // 看见这题的第一眼 哇怎么这么熟悉啊 噢 原来是 之前学的一个函数啊 就是__builtin_popcount 函数 它就是直接求一个数的二进制里面有多少个一
    while(cin>>n){
      m=0;
      while(n){
        n=n&(n-1);
        m++;
      }  // 这样跟快 就是每次都会去除掉n的二进制里的一个1
      cout<<m<<"\n";
    }
    // 但这题还有一个跟快的方法就是 用位运算
     
    //cout<<__builtin_popcount(n)<<"\n"<<__builtin_popcount(m)<<"\n";
   

}

int main(){
    int T=1;
    while(T--){
        solve();
    }
    return 0;
}
// 活动地址: 牛客春招刷题训练营 - 编程打卡活动

全部评论

相关推荐

这一集&nbsp;硕士输的很惨
HoePointer:普通硕士的悲哀,高的进不去,低的要不起
点赞 评论 收藏
分享
喜欢喜欢喜欢:这是我见过最长最臭的简历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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