AcWing 3637. 0和1的个数
原题链接
简单
作者:
JOKER_LRZ
,
2024-11-25 21:36:49
,
所有人可见
,
阅读 11
题目描述
就是让你看一个数字的二进制有几个零,几个一
注意 !!! 先输出零的个数
并且给你一个 int 的数 有32位
所以 "阳历" 说15有28个零,4个一
样例
15
28 4
算法1
(逐位判断)
通过遍历整数 n 的每一位(共 32 位)
时间复杂度
$O(n)$
参考文献
无
C++ 代码
#include <iostream>
#define JOKER_LRZ_code return 0
using namespace std;
int main() {
int n;
cin >> n;
int tot_0 = 0; //零的个数
int tot_1 = 0; //一的个数
for (int i = 0; i < 32; ++i) { //根据题意
if (n & (1 << i)) {//使用位运算&判断该位是0还是1,从而分别统计出0和1的个数并输出。
tot_1++;
} else {
tot_0++;
}
}
cout << tot_0 << " " << tot_1 ;
JOKER_LRZ_code;
}