เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้ในรายการว่างของจำนวนเต็มในรูปแบบที่สะดวกใด ๆ ที่เหมาะสมเช่นหรือ4, 0, -1, -6, 2
[4 0 -1 -6 2]
พิมพ์หรือส่งคืนสตริงที่แสดงรายการเป็นฟอเรสต์ ASCII ที่แต่ละหมายเลขกลายเป็นต้นไม้ที่มีความสูงตามสัดส่วน ต้นไม้แต่ละต้นใช้ข้อความสี่คอลัมน์ในเอาต์พุตดังนี้:
จำนวนเต็มบวก N จะกลายเป็นต้นไม้ที่มีฐานเป็น
__|_
และบนคือ^
มีชั้นของ N/ \
ในระหว่างตัวอย่างเช่นเมื่อ N = 1 ต้นไม้คือ
^ / \ __|_
เมื่อ N = 2 ต้นไม้คือ
^ / \ / \ __|_
เมื่อ N = 3 ต้นไม้คือ
^ / \ / \ / \ __|_
และอื่น ๆ
จำนวนเต็มลบ N กลายเป็นเหมือนต้นไม้ในเชิงบวกที่เกี่ยวข้องยกเว้นแถบแนวตั้งอยู่ระหว่างกิ่งสแลชแทนที่จะเป็นช่องว่าง
ตัวอย่างเช่นเมื่อ N = -1 ต้นไม้คือ
^ /|\ __|_
เมื่อ N = -2 ต้นไม้คือ
^ /|\ /|\ __|_
เมื่อ N = -3 ต้นไม้จะเป็น
^ /|\ /|\ /|\ __|_
และอื่น ๆ
เมื่อจำนวนเต็มเป็น 0 จะไม่มีต้นไม้ในทางเทคนิคเพียงแค่พื้นที่ว่างสี่ขีดล่าง:
____
ขีดล่างที่ฐานของต้นไม้แต่ละต้นจะต้องเรียงกันในเอาท์พุทนั่นคือต้นไม้ทั้งหมดจะต้องมีฐานในระดับเดียวกัน นอกจากนี้ขีดล่างเดียวจะถูกเพิ่มในตอนท้ายของบรรทัดขีดล่างหลังต้นไม้สุดท้าย สิ่งนี้ทำให้ต้นไม้ทุกต้นมีคอลัมน์ "อากาศ" ว่างเปล่าที่ด้านข้างของต้นไม้
ตัวอย่างเช่นผลลัพธ์สำหรับ4 0 -1 -6 2
จะเป็น
^
/|\
^ /|\
/ \ /|\
/ \ /|\ ^
/ \ ^ /|\ / \
/ \ /|\ /|\ / \
__|_______|___|___|__
สังเกตว่าลวดลายต้นไม้มีคอลัมน์นำของพื้นที่ว่างเสมอ แต่จะต้องเพิ่มขีดล่างเพื่อเสริมด้านขวาของต้นไม้สุดท้าย
นอกจากนี้:
- ช่องว่างต่อท้ายบนบรรทัดใดก็ได้ แต่ไม่ควรมีช่องว่างนำหน้าที่ไม่จำเป็น
- ไม่อนุญาตให้ขึ้นบรรทัดใหม่นำหน้า (ต้นไม้ที่สูงที่สุดควรแตะที่ด้านบนสุดของตารางข้อความเอาต์พุต) และอนุญาตให้ขึ้นบรรทัดใหม่ได้สูงสุดหนึ่งบรรทัดเท่านั้น
- รายการอาจมีจำนวนเต็มตั้งแต่ -250 ถึง 250 ไม่จำเป็นต้องใช้ต้นไม้สูง
รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ
ตัวอย่างเพิ่มเติม
3
:
^
/ \
/ \
/ \
__|__
-2
:
^
/|\
/|\
__|__
0
:
_____
0, 0
:
_________
0, 1, 0
:
^
/ \
______|______
0, -1, 2, -3, 4
:
^
^ / \
^ /|\ / \
^ / \ /|\ / \
/|\ / \ /|\ / \
______|___|___|___|__
_
(ขีดล่าง) หลังต้นไม้สุดท้าย