编写代码以确定数字是否可被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
Run Code Online (Sandbox Code Playgroud)
这是基于面试问题.我要求绘制逻辑门,但由于这是stackoverflow,我会接受任何编码语言.硬件实现的奖励点(verilog等).
部分a(简单):第一个输入是MSB.
b部分(稍微难一点):第一个输入是LSB.
c部分(困难):哪一个更快更小,(a)或(b)?(理论上不是Big-O意义上的,但实际上更快/更小.)现在采用较慢/较大的一个,并使其快/小与更快/更小的一个.
你如何编写一个正则表达式来定义0和1的所有字符串,作为二进制数,表示一个3的倍数的整数.
一些有效的二进制数将是:
11 110 1001 1100 1111