首页 > 试题广场 >

二进制数1

[编程题]二进制数1
  • 热度指数:10715 时间限制: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}
头像 我是芭芭拉的狗
发表于 2026-01-07 11:27:19
n = int(input()) s = 0 while n > 0: a = n % 2 if a == 1: s += 1 n = n // 2 print(s)
头像 Xuan2333
发表于 2026-01-25 09:29:10
其实有一个函数还是挺不为人知的,叫__builtin_popcount(n)可以统计一个数的二进制的1的个数但是!这个函数后面的n是unsigend int型,对于本题来说会爆掉的所以我们就可以换成它的long long 版本:__builtin_popcountll(n)最后直接输出就好啦 voi 展开全文
头像 丨阿伟丨
发表于 2025-08-28 15:38:22
题目链接 二进制数1 题目描述 给定一个非负整数 ,计算其二进制表示中数字 1 的数量。 解题思路 计算一个整数二进制表示中 1 的个数(也称为“汉明权重”或“population count”)是一个经典的位运算问题。这里介绍两种主要的方法。 方法一:Brian Kernighan 算法 这是一个 展开全文
头像 BraveCoder
发表于 2025-10-21 11:13:45
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); 展开全文
头像 lahm66
发表于 2025-09-05 14:44:45
方法一 import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner 展开全文
头像 何成HN
发表于 2025-10-25 16:17:26
print(bin(int(input())).count('1'))
头像 牛客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_ 展开全文
头像 睡眠羊sheep
发表于 2026-01-21 14:25:48
#include<bits/stdc++.h> using namespace std; #define int long long int fun(long long n){ int total=0; while(n>0){ n&=(n-1 展开全文
头像 唯久居
发表于 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 += 展开全文