จากศิลปะ 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
อาจตามด้วยช่องว่างต่อท้ายหรือขึ้นบรรทัดใหม่
หากอินพุตเป็นแบบเดี่ยวที่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
? เขตแดนระหว่างเหนือและตะวันตกเฉียงเหนือคืออะไร