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

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

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

描述

输入一个正整数,计算它在二进制下的1的个数。
注意多组输入输出!!!!!!

数据范围:1≤n≤2^31−1 

输入描述:

输入一个整数

输出描述:

计算整数二进制中1的个数

示例1

输入:
5
输出:
2
说明:
5的二进制表示是101,有2个1   

示例2

输入:
0
输出:
0
代码部分:
#include <stdio.h>
//以下是Senky的代码
int Bite(int n) {//计算二进制n的1的个数
    int count = 0;
    while (n) {
        n &= n - 1;
        count++;
    }
    return count;
}
int main() {
    int n = 0;
    while (scanf("%d", &n) != EOF) {
        printf("%d\n", Bite(n));
    }
    return 0;//编辑于2022/10/08
}
总结:
①唯一要注意的点是多组输入;
②当前帖子仅供自我精进、学习使用,有不足之处欢迎指正。
#华为笔试#
华为-HJ 文章被收录于专栏

机试的题解

全部评论

相关推荐

04-18 15:58
已编辑
门头沟学院 设计
kaoyu:这一看就不是计算机的,怎么还有个排斥洗碗?
点赞 评论 收藏
分享
野猪不是猪🐗:我assume that你must技术aspect是solid的,temperament也挺good的,however面试不太serious,generally会feel style上不够sharp
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务