给定两个向量的ASCII艺术,找到结果向量的大小和程度。
输入值
这可以通过STDIN接收,从本地文件读取或通过函数调用提供。这是两个向量输入的示例:
^------>
|
|
|
x
这表示北移4个单位,东移7个单位。每个输入的起点将由x
(小数120
)表示。
所有向量都是水平或垂直线。
每个向量都有以下四个端点之一:
^v<>
,由短划线(-
,十进制45)或竖线(|
,十进制124)组成。平面上的空白点由空格(
,十进制32)填充。
输入可以是单个
x
。相邻向量始终彼此垂直。
所有向量都是从头到尾的。
输出量
这将是结果点的位移(距起点的距离)及其相对于起点的移动程度。
对于上述输入,输出应为8.06
单位和60.3
度。每个人都应有3个有效数字。以下是带有3个有效数字的数字的一些示例:
- 1.00
- 60.1
- 453
- 7.08
- 4.50
- 349
所有单位的度量将为<= 999
。
这些编号应以以下格式输出。这是使用上面的数字。
8.06 units @ 60.3 degrees
后面可以跟一个空格或换行符。
如果输入是single x
,没有位移,因此也没有位移角度,则输出应为空行(单个换行符)或以下格式:
0 units @ - degrees
如果您想获得奖金,指示方向也应该正确-
。
如果奖金2、3或两者都完成,则输出应遵循以下模型并遵守与上述相同的限制。
8.06 units @ 60.3 degrees NE
度数应根据标准平面进行测量。
90
135 | 45
\|/
180 ---x---- 0
/|\
225 | 315
270
0
度是东,1 - 89
度是东北,90
是北,等等。
奖金
以下价值总计-50%。
对于每个可以处理的附加矢量,采取-10%的奖励。此奖金最多可应用3次。向量永远不会重叠或交叉。
如果您的输出包括该角度的基本方向(北,南,东,西),则采取-10%的奖励。
如果您的输出包括角度的中间方向(东北,西北,东南,西南),则可采用-10%的奖励。
例子
在:
x---->
|
v
出:
5.39 units @ 338 degrees
可选地 SE
在:
<--------------^
|
|
x
出:
15.3 units @ 169 degrees
可选地 NW
在:
x
|
|<-----^
| |
v------>
出:
2.24 units @ 297 degrees
可选地 SE
示例(多个向量)
在:
x--->
|
|
v----------->
出:
16.3 units @ 349 degrees
可选地 SE
在:
<-------^
| |
| |
v |
|
|
x
出:
8.54 units @ 159 degrees
可选地 NW
在:
^-->
| |
| v
|
<--------x
出:
6.32 units @ 162 degrees
可选地 NW
x-->
。向量可以交叉吗?
x
。可能有两个以上(如果尝试完成奖金),但不能少于两个。我正在研究多个向量输入的示例。在任何输入下,矢量都不会交叉。@ThomasKwa
x
什么?西北与西北之间的边界是什么?