#T557842. 统计好数(位运算实现)

统计好数(位运算实现)

题目描述

对一个二进制数中,如果数字1的个数多于数字0的个数,这个二进制数就称为好数。

例如:

(1101)2(1101)_2,其中1的个数为3,0的个数为1,则此数是好数;

(1010)2(1010)_2,其中1的个数为2,0的个数也为2,则此数不是好数;

(11000)2(11000)_2,其中1的个数为2,0的个数为3,则此数不是好数。

输入n,统计n位二进制中好数的个数。注意,在表示一个二进制数时,最高位可以为0。

本题要求用位运算实现。

输入格式

输入数据占一行,为一个正整数n,n≤20。

输出格式

输出数据占一行,为求得的答案。

输入输出样例 #1

输入 #1

10

输出 #1

386

说明/提示

本题出处

本题源自以下教材的编程习题:王桂平, 周思益, 周迎川著. C++编程与信息学竞赛数学基础, 北京大学出版社, 2025年7月出版.