题解 | 求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 山东

相关推荐

不愿透露姓名的神秘牛友
07-11 11:00
点赞 评论 收藏
分享
这算盘打的
程序员小白条:都这样的,都是潜规则,你自己说可以实习一年就行了,实习可以随便跑路的
点赞 评论 收藏
分享
醉蟀:你不干有的是人干
点赞 评论 收藏
分享
05-26 22:25
门头沟学院 Java
Java小肖:不会是想叫你过去把你打一顿吧,哈哈哈
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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