假设我有一个黑盒,有3个输入(每个输入是1位)和2位输出。
黑框统计打开的输入位的数量。
只使用这样的黑匣子,就需要实现输入中开启位的计数器,它有7位,实现时应该使用尽可能少的黑匣子。
/这是一个面试问题
最佳答案
你在做一个二进制加法器。试试这个。。。
两个黑色输入框,剩余一个输入:
7 6 5 4 3 2 1
| | | | | | |
------- ------- |
| | | | |
| H L | | H L | |
------- ------- |
| | | | |
将两个低输出和其余输入(1)输入到另一个黑盒:
L L 1
| | |
-------
| |
| C L |
-------
| |
此黑框的低输出将是结果的低位。高输出是进位。将该进位与前两个黑匣子的高位一起送入第四个黑匣子:
H H C L
| | | |
------- |
| | |
| H M | |
------- |
| | |
结果应该是输入中由高、中、低位以二进制表示的“开”位数。