编写代码确定一个数是否能被3整除。函数的输入是单个二进制位 0 或 1,如果接收到的数字是3的倍数的二进制表示,则输出应为1,否则为零。
示例:
input "0": (0) output 1
inputs "1,0,0": (4) output 0
inputs "1,1,0,0": (6) output 1
这是基于一个面试问题。我要求绘制逻辑门图,但既然在stackoverflow上,任何编程语言的答案都可以接受。如果提供硬件实现(例如Verilog),则会给予额外的奖励。
第一部分(易):第一个输入是最高有效位(MSB)。
第二部分(较难):第一个输入是最低有效位(LSB)。
第三部分(困难):哪个更快、更小,(a)还是(b)?(不是从大O角度理论上的,而是从实际上的速度/大小来看)。现在把速度较慢/较大的那个变得和速度较快/较小的一样快/小。