华为机试HJ62:查找输入整数二进制中1的个数

简介: 华为机试HJ62:查找输入整数二进制中1的个数

题目描述:

输入一个正整数,计算它在二进制下的1的个数。

注意多组输入输出!!!!!!

输入描述:

输入一个整数

输出描述:

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

示例:

输入:

5


输出:

2


说明:

5的二进制表示是101,有2个1

解题思路:

本题用NumberOfOne函数计算整数二进制下的1的个数,一般可以用位运算或者右移运算实现。我这里采用了右移运算,将二进制数字余2,如果等于1,说明末位是1,count++,然后右移一下,直到number为0。比如5,二进制为101,右移一次010,再一次001。

测试代码:

#include <iostream>
using namespace std;
int NumberOfOne(int number)
{
    int count=0;
    while(number)
    {
        if(number%2==1)count++;
        number>>=1;
    }
    return count;
}
int main()
{
    int number;
    while(cin>>number)
    {
        cout<<NumberOfOne(number)<<endl;
    }
    return 0;
}


相关文章
|
6月前
|
人工智能
PTA-查找满足条件的所有整数
查找满足条件的所有整数
57 1
|
6月前
nowcoder NC30 缺失的第一个正整数
题目链接:  https://www.nowcoder.com/share/jump/819478881694767416272
42 0
华为机试HJ58:输入n个整数,输出其中最小的k个
华为机试HJ58:输入n个整数,输出其中最小的k个
华为机试HJ9:提取不重复的整数
华为机试HJ9:提取不重复的整数
|
容器
华为机试HJ10:字符个数统计
华为机试HJ10:字符个数统计
华为机试HJ59:找出字符串中第一个只出现一次的字符
华为机试HJ59:找出字符串中第一个只出现一次的字符
华为机试HJ84:统计大写字母个数
华为机试HJ84:统计大写字母个数
Python-剑指offer(10,11,12)矩形覆盖,二进制中1的个数,数值的整数次方
Python-剑指offer(10,11,12)矩形覆盖,二进制中1的个数,数值的整数次方
leetcode 1356 根据数字二进制下1的数目排序
leetcode 1356 根据数字二进制下1的数目排序
70 0
leetcode 1356 根据数字二进制下1的数目排序
LeetCode 1356. 根据数字二进制下 1 的数目排序
给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。
74 0