首页 > 试题广场 >

二进制中有多少个1

[编程题]二进制中有多少个1
  • 热度指数:6961 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
把一个 32-bit 整型转成二进制,其中包含多少个 1 ,比如 5 的二进制表达是 101 ,其中包含 2 个 1
 
数据范围:输入的数字满足

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


输出描述:
输出为字符串,如“2”、“1”
示例1

输入

5

输出

2

说明

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

输入

0

输出

0
头像 蜜小桃
发表于 2025-03-23 20:47:56
#include<bits/stdc++.h> using namespace std; int main(){ int n; cin >> n; int res = 0; for(int i =0;i<32;i++){ 展开全文
头像 白色高跟鞋
发表于 2020-04-27 22:19:11
剑指Offer原题,不利用API或者暴力统计的话,稍微扩展一种巧妙的解法吧。刚好面试的时候也要求用位运算用小于O(n)的方法求解。 注意python2.7不能有中文注释 n = int(raw_input()) # Notice: raw_input() for python 2.7 cnt = 展开全文
头像 小牛哥永不退缩
发表于 2023-08-03 14:53:47
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = 展开全文
头像 重生之我要当分子
发表于 2024-12-31 01:31:37
解题思路 计算32位整数二进制表示中1的个数,有几种常用方法: 位运算法: 使用 判断最低位是否为1 右移 ,继续判断 统计所有为1的位 n & (n-1) 法: 每次操作会消除最右边的1 统计操作次数即为1的个数 这种方法更高效,因为只需要处理1的个数次 查表法: 展开全文
头像 bao_hu_yuan_zhang
发表于 2024-03-12 20:34:56
#include <iostream> using namespace std; int main() { int i=0; int n=0; cin>>n; int count=0; while(n) { 展开全文
头像 神奇的驼瑞驰在许愿
发表于 2024-12-20 22:36:56
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner scan 展开全文