轨道
/
Idris
Idris
/
练习
/
Eliud 的蛋
Eliud 的蛋

Eliud 的蛋

简单

简介

你的朋友 Eliud 从她的奶奶 Tigist 那里继承了一座农场。 她的奶奶是一位发明家,总爱把事情造得过分复杂。 鸡舍里有一块数字显示屏,上面显示一个编码后的数字,代表所有可以捡到的鸡蛋的位置。

Eliud 想请你写一个程序,显示鸡舍里鸡蛋的实际数量。

位置信息的编码方式如下:

  1. 扫描所有可能下蛋的位置,有蛋的标1,空位标0。
  2. 把这个数字从二进制转换成十进制。
  3. 把结果显示在显示屏上。

示例 1

七个独立的巢箱排成一排,其中第一个、第三个、第四个和第七个巢箱各有一个鸡蛋。

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

转换后的二进制

1011001

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

显示屏上的十进制数字

89

鸡舍里实际的鸡蛋数量

4

示例 2

七个独立的巢箱排成一排,其中只有第四个巢箱里有一个鸡蛋。

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

转换后的二进制

0001000

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

显示屏上的十进制数字

8

鸡舍里实际的鸡蛋数量

1

说明

你的任务是统计一个数字的二进制表示中 1 的个数。

限制

不要使用标准库提供的位计数功能!请改用其他基础工具自己解决。

通过 GitHub 编辑 链接将在新窗口或新标签页中打开
Idris Exercism

准备好开始 Eliud 的蛋 了吗?

注册 Exercism,借助 58 个练习 和真人导师指导,学习并掌握 Idris,全部免费。