| 
                                        
                                     
                                        
                                        博士后26999983587112173 朵7386 个1021 个911202014-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,帮助开发者发现业务逻辑错误
 |