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

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

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

#include <iostream>
using namespace std;

int lowbit(int x) {
    return x & (-x);
}

int main() {
    int n;
    cin >> n;

    int ans = 0;
    while(n != 0) {
        ans ++;
        n -= lowbit(n);
    }
    cout << ans << endl;
    return 0;
}
// 64 位输出请用 printf("%lld")

这里用了一个lowbit运算来优化代码,不必一位一位的去判断。补充知识:lowbit运算是返回最低位的那个1及其后面的0所组成的十进制的值。#牛客春招刷题训练营#

#牛客春招刷题训练营#
全部评论
https://www.nowcoder.com/discuss/727521113110073344
点赞 回复 分享
发布于 03-20 12:32 山东

相关推荐

牛客83265014...:完了,连现在都没开始面,13号投的是不是晚了
秋招的第一个offer,...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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