你正和几个朋友以及朋友的朋友一起创办一个秘密编程俱乐部。大家并非都认识彼此,于是你和朋友们决定设计一套秘密握手暗号,用来确认对方是俱乐部成员。你不想让任何不知情的人破解这套代码。
你们设计的方案是:一个人说出 1 到 31 之间的一个数字,另一个人把它转换成一系列动作。
你的任务是把一个 1 到 31 之间的数字,转换成秘密握手中的一系列动作。
动作序列取决于数字转换为二进制后最右边的五位。从最右边的一位开始,向左移动。
每个数位对应的动作如下:
00001 = wink
00010 = double blink
00100 = close your eyes
01000 = jump
10000 = Reverse the order of the operations in the secret handshake.
我们以数字9为例:
1001。wink。这是最后一位,所以最终的动作序列是:
wink, jump
对于数字 26,它的二进制是11010,我们得到以下动作:
因此,26 的秘密握手是:
jump, double blink
如果你不确定二进制是什么,或者它是如何工作的,可以看看[这篇二进制教程][intro-to-binary]。 [intro-to-binary]: https://medium.com/basecs/bits-bytes-building-with-binary-13cb4289aafa