列表

详情


KS27. 二进制中有多少个1

描述

把一个 32-bit 整型转成二进制,其中包含多少个 1 ,比如 5 的二进制表达是 101 ,其中包含 2 个 1
 
数据范围:输入的数字满足

输入描述

输入为整型(十进制),只需兼容32-bit即可,如5、32

输出描述

输出为字符串,如“2”、“1”

示例1

输入:

5

输出:

2

说明:

5的二进制是101,其中包含2个1

示例2

输入:

0

输出:

0

原站题解

C 解法, 执行用时: 2ms, 内存消耗: 288KB, 提交时间: 2019-08-30

# include <stdio.h>

int main(void)
{
    int val;
    int num = 0;
    scanf("%d", &val);
    
    while (0 != val)
    {
        if (1 == val%2)
            ++num;
        val /= 2;
    }
    
    printf("%d\n", num);
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 296KB, 提交时间: 2019-07-06

#include<stdio.h>
int main()
{
    int input;
    scanf("%d",&input);
    int res=0;
    while(input!=0)
    {
        input = input&(input-1);
        ++res;
    }
    printf("%d",res);
    return 0;
}

上一题