#T557842. 统计好数(位运算实现)
统计好数(位运算实现)
题目描述
对一个二进制数中,如果数字1的个数多于数字0的个数,这个二进制数就称为好数。
例如:
,其中1的个数为3,0的个数为1,则此数是好数;
,其中1的个数为2,0的个数也为2,则此数不是好数;
,其中1的个数为2,0的个数为3,则此数不是好数。
输入n,统计n位二进制中好数的个数。注意,在表示一个二进制数时,最高位可以为0。
本题要求用位运算实现。
输入格式
输入数据占一行,为一个正整数n,n≤20。
输出格式
输出数据占一行,为求得的答案。
输入输出样例 #1
输入 #1
10
输出 #1
386
说明/提示
本题出处
本题源自以下教材的编程习题:王桂平, 周思益, 周迎川著. C++编程与信息学竞赛数学基础, 北京大学出版社, 2025年7月出版.