สำหรับจุดประสงค์ของคำถามนี้เส้นโค้งคดเคี้ยวคือเส้นโค้งที่ตามทิศทางทั่วไปจากซ้ายไปขวา แต่ทำให้ n + 1 ซ้ำที่ 90 องศาไปทางซ้ายแล้ว n + 1 หันไปทางขวา (สำหรับ n> 0)
อันที่จริงแล้วคดเคี้ยวจะมี n
ส่วนต่างๆ
ผลัดกันแสดงด้วย +
ผลัดจะแสดงด้วย
ความกว้างของคดเคี้ยว (ระยะห่างระหว่างสอง+
) คือ 3 ที่ขอบฟ้า ( ---
) และ 1 ที่แนวตั้ง (|
)
นี่คือส่วนเดียวของเส้นโค้งวกวนที่มีขนาด n จาก 1 ถึง 5:
+-------------------+
| |
+---------------+ | +-----------+ |
| | | | | |
+-----------+ | +-------+ | | | +---+ | |
| | | | | | | | | | | |
+-------+ | +---+ | | +---+ | | | +---+ | | |
| | | | | | | | | | | | | |
+---+ +---+ | +---+ | | +-------+ | | +-----------+ | |
| | 1 | | 2 | | 3 | | 4 | | 5
---+ +-------+ +-----------+ +---------------+ +-------------------+ +
ท้าทาย:
ให้ตัวเลขสองค่าเป็นบวกn
และm
วาดm
ส่วนของเส้นโค้งวกวนที่มีขนาดn
ส่วนของเส้นโค้งคดเคี้ยวที่มีขนาดคุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น
การป้อนข้อมูล:
n
> 0 ขนาดของเส้นโค้ง
m
> 0 จำนวนกลุ่มที่จะวาด
เอาท์พุท:
การแทน ASCII ของเส้นโค้งคดเคี้ยว
ตัวอย่าง:
n = 3
m = 2
+-----------+ +-----------+
| | | |
| +---+ | | +---+ |
| | | | | | | |
+---+ | | +---+ | |
| | | |
-----------+ +-----------+ +
n = 2
m = 5
+-------+ +-------+ +-------+ +-------+ +-------+
| | | | | | | | | |
+---+ | +---+ | +---+ | +---+ | +---+ |
| | | | | | | | | |
-------+ +-------+ +-------+ +-------+ +-------+ +
n = 4
m = 4
+---------------+ +---------------+ +---------------+ +---------------+
| | | | | | | |
| +-------+ | | +-------+ | | +-------+ | | +-------+ |
| | | | | | | | | | | | | | | |
| +---+ | | | +---+ | | | +---+ | | | +---+ | |
| | | | | | | | | | | | | | | |
+-------+ | | +-------+ | | +-------+ | | +-------+ | |
| | | | | | | |
---------------+ +---------------+ +---------------+ +---------------+ +
เกณฑ์การชนะ:
นี่คือโค้ดกอล์ฟดังนั้นโค้ดที่สั้นที่สุดเป็นไบต์ในแต่ละภาษาจะชนะ กรุณาอธิบายรหัสของคุณถ้าคุณมีเวลาที่จะทำ
n
เลี้ยวซ้ายไม่ได้เหรอ?
n+1
ตอนที่ดูตัวอย่างโดยเฉพาะระหว่างเซ็กเมนต์เดียว ..