统计鸡蛋数量

实践练习C++17

简介

朋友埃利乌德继承了祖母蒂吉斯特的农场。祖母是一位喜欢把事情设计得过分复杂的发明家。鸡舍的数字显示屏使用编码数值表示所有可收取鸡蛋的位置。

埃利乌德希望你编写程序,显示实际鸡蛋总数。

位置编码规则如下:

  1. 扫描所有可能下蛋的位置,有蛋记 1,空位记 0。
  2. 将得到的二进制数转换为十进制。
  3. 在显示屏上显示结果。

示例 1

七个鸡窝排列成一行,第 1、3、4、7 个各有一枚鸡蛋。

 _ _ _ _ _ _ _
|E| |E|E| | |E|

对应二进制

二进制 1011001。

 _ _ _ _ _ _ _
|1|0|1|1|0|0|1|

屏幕显示的十进制数

89

实际鸡蛋数

4

示例 2

七个鸡窝中,只有第 4 个有一枚鸡蛋。

 _ _ _ _ _ _ _
| | | |E| | | |

对应二进制

二进制 0001000。

 _ _ _ _ _ _ _
|0|0|0|1|0|0|0|

屏幕显示的十进制数

8

实际鸡蛋数

1

任务说明

统计一个数字的二进制表示中,值为 1 的位数。

限制

不要调用标准库现成的位计数功能,请使用其他基础工具自行实现。