首页 > 试题广场 >

二进制数1

[编程题]二进制数1
  • 热度指数:9448 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
\hspace{15pt}给定一个非负整数 x,请计算 x 的二进制表示中数字 \texttt{1} 的数量。

\hspace{15pt}【名词解释】
\hspace{23pt}\bullet\, 二进制表示二进制表示 指将整数用基数 2 的形式书写,不含前导零;
\hspace{23pt}\bullet\, 位计数位计数 是指统计一个整数二进制表示中 \texttt{1} 的数量,也称为 \operatorname{popcount}

输入描述:
\hspace{15pt}在一行上输入一个整数 x\left(0 \leqq x \leqq 10^{18}\right),表示待统计的数值。


输出描述:
\hspace{15pt}在一行上输出一个整数,表示 x 的二进制表示中 \texttt{1} 的数量。
示例1

输入

3

输出

2

说明

3 的二进制表示为 \left(11\right)_2,其中包含两个 \texttt{1}
示例2

输入

65

输出

2

说明

65 的二进制表示为 \left(1000001\right)_2,其中包含两个 \texttt{1}
头像 丨阿伟丨
发表于 2025-08-28 15:38:22
题目链接 二进制数1 题目描述 给定一个非负整数 ,计算其二进制表示中数字 1 的数量。 解题思路 计算一个整数二进制表示中 1 的个数(也称为“汉明权重”或“population count”)是一个经典的位运算问题。这里介绍两种主要的方法。 方法一:Brian Kernighan 算法 这是一个 展开全文
头像 lahm66
发表于 2025-09-05 14:44:45
方法一 import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner 展开全文
头像 牛客229068068号
发表于 2025-08-05 20:54:11
def tentotwo(x): x = int(x) list_two = [] while x>0: temp = x%2 list_two.append(temp) x = x//2 return list_ 展开全文
头像 唯久居
发表于 2025-10-05 19:12:30
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = 展开全文
头像 想交流的林北很想退休
发表于 2025-09-20 23:35:01
#include <iostream> using namespace std; int main() { unsigned long long x; cin >> x; int ans=0; while(x){ ans += 展开全文
头像 bandiaoz
发表于 2024-12-26 19:10:14
解题思路 这是一道位运算题目,主要思路如下: 问题分析: 输入一个long类型的数值 需要计算其二进制表示中1的个数 需要处理负数的情况 解决方案: 方法一:循环右移,统计最低位1 方法二:n & (n-1)消除最低位1 方法三:查表法统计每8位中1的个数 方法四:内置函数(如 展开全文
头像 冷艳的西红柿刷牛客
发表于 2025-10-11 15:22:35
import java.util.Scanner; /** * @author supermejane * @date 2025/10/11 15:14 * @description BGN80 二进制数1 */ public class Main { public stati 展开全文
头像 Silencer76
发表于 2025-08-11 15:20:37
题目链接 二进制数1 题目描述 给定一个非负整数 ,请计算 的二进制表示中数字 1 的数量。 输入: 一个非负整数 。 输出: 一个整数,表示 的二进制表示中 1 的数量。 解题思路 本题要求计算一个非负整数 的二进制表示中 1 的数量,也称为“位计数”或“人口计数”(Populati 展开全文
头像 满加
发表于 2025-08-24 19:22:22
C++ #include <iostream> using namespace std; int main() { long long x; cin >> x; int cnt=0; while (x) { if (x%2) 展开全文