- 按键认证大神
- 2699998
- 3587
- 11
- 2173 朵
- 7386 个
- 1021 个
- 91120
- 2014-08-23
|
1#
t
T
发表于 2022-05-05 13:34
|
|只看楼主
题目描述 假设我们有一个拥有8个方位的罗盘(N, NE, E, SE, S, SW, W, NW), 再给定一个需要转动的角度(45度的倍数), 顺时针转为正,逆时针转为负, 请编写一个函数,求出转动后的角度。转动角度可以是正数,也可以是负数。
【示例】 输入:“S”, 180 输出:“N” 解释:S 表示正南,旋转180度后,就会指向正北,即 N
题目难度:简单 题目来源:CodeWars-Turn with a Compass 题目交流: 584781753
|
- Import "SmAssert.dll"
- Function 旋转罗盘(方向)
- // 您的代码写在这里
- End Function
- SmAssert 旋转罗盘("S", 180) = "N"
- SmAssert 旋转罗盘("SE", -45) = "E"
- SmAssert 旋转罗盘("W", 495) = "NE"
复制代码 参考题解- Import "SmAssert.dll"
- Function 旋转罗盘(方向, 角度)
-
- '【作者】:神梦无痕
- '【QQ】:1042207232
- '【Q群】:584781753
-
- Dim 方向列表, 次数, 方向索引
- Dim 返回索引, 返回方向
- Dim i
-
- 方向列表 = Array("N", "NE", "E", "SE", "S", "SW", "W", "NW")
- 次数 = 角度 / 45
- 方向索引 = -1
- For i = 0 To UBound(方向列表)
- If 方向列表(i) = 方向 Then
- 方向索引 = i
- Exit For
- End If
- Next
- If 方向索引 > -1 Then
- 返回索引 = (方向索引 + 次数) Mod 8
- 返回方向 = 方向列表(返回索引)
- 旋转罗盘 = 返回方向
- End If
- End Function
- SmAssert 旋转罗盘("S", 180) = "N"
- SmAssert 旋转罗盘("SE", -45) = "E"
- SmAssert 旋转罗盘("W", 495) = "NE"
复制代码 插件下载【插件】神梦断言插件 SmAssert.dll,帮助开发者发现业务逻辑错误
|