编程练手系列(编号1):秘密握手

编程练手系列(编号1):秘密握手

首页动作格斗代号jump正版更新时间:2024-06-12
题目——秘密握手

您和一些朋友以及朋友的朋友成立了一个秘密编码俱乐部。并不是每个人都互相认识,所以你和你的朋友们决定创建一个秘密握手方式,用来识别某个人是否是会员。你们不想让不了解情况的人破解这个密码。

你们设计了这样一个密码:一个人说出 1 到 31 之间的数字,另一个人将其转换成一系列动作。

指令

你的任务是将 1 到 31 之间的数字转换成秘密握手中的一系列动作。在将数字转换成二进制后,通过查看数字最右边的五位数来选择动作序列。从最右边的数字开始向左移动。

每个数字位的操作如下

00001 = wink

00010 = double blink

00100 = close your eyes

01000 = jump

10000 = 反向排列秘密握手的操作顺序。


例子
  1. 我们以数字 9 为例:

9 的二进制数是 1001。

最右边的数字是 1,所以第一个动作是眨眼。

再向左,下一个数字是 0,所以没有双眨眼(wink)。

再向左,下一位数字是 0,所以睁眼。

再向左,下一位数是 1,所以你要跳(jump)。

这是最后一位数,所以最终输出的动作顺序是:

wink, jump

  1. 给定数字 26,二进制为 11010,我们可以得到以下动作:

双闪

跳转

反向动作

因此,26 的秘密握手动作的最终输出的动作顺序是

jump, double blink代码

Julia代码

function secret_handshake(code) # 检查输入参数。如果在设计范围之外,抛出异常 if code > 31 || code < 1 throw(BoundsError()) end # 设置掩码组 masks = [0b0001, 0b00010, 0b00100, 0b01000, 0b10000] # 设置握手动作组 expressions = ["wink", "double blink", "close your eyes", "jump"] # 按照题意决定动作顺序存入变量结果变量 result = [] for i in 1:5 if code & masks[i] !== 0 if i === 5 reverse!(result) else push!(result, expressions[i]) end end end return result end知识点




,
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved