Viết chương trình hoặc hàm có trong danh sách số nguyên không trống trong bất kỳ định dạng thuận tiện hợp lý nào, chẳng hạn như 4, 0, -1, -6, 2
hoặc [4 0 -1 -6 2]
.
In hoặc trả về một chuỗi mô tả danh sách như một khu rừng nghệ thuật ASCII nơi mỗi số trở thành một cây có chiều cao tỷ lệ thuận. Mỗi cây chiếm bốn cột văn bản trong đầu ra như sau:
Một số nguyên dương N trở thành một cây có gốc
__|_
và đỉnh là^
, với N lớp/ \
ở giữa.Ví dụ: khi N = 1 cây
^ / \ __|_
khi N = 2 cây
^ / \ / \ __|_
khi N = 3 cây là
^ / \ / \ / \ __|_
và như thế.
Một số nguyên âm N trở nên giống như cây dương tương ứng ngoại trừ một thanh dọc nằm giữa các dấu gạch chéo thay vì khoảng trắng.
Ví dụ: khi N = -1 cây
^ /|\ __|_
khi N = -2 cây là
^ /|\ /|\ __|_
khi N = -3 cây
^ /|\ /|\ /|\ __|_
và như thế.
Khi số nguyên bằng 0, về mặt kỹ thuật không có cây, chỉ có một khoảng trống gồm bốn dấu gạch dưới:
____
Các dấu gạch dưới ở gốc của mỗi cây phải xếp hàng ở đầu ra, tức là tất cả các cây phải có các cơ sở của chúng ở cùng cấp. Ngoài ra, một dấu gạch dưới duy nhất được thêm vào cuối dòng gạch dưới sau cây cuối cùng. Điều này làm cho nó để mỗi cây có một cột "không khí" trống ở hai bên của nó.
Ví dụ, đầu ra cho 4 0 -1 -6 2
sẽ là
^
/|\
^ /|\
/ \ /|\
/ \ /|\ ^
/ \ ^ /|\ / \
/ \ /|\ /|\ / \
__|_______|___|___|__
Lưu ý làm thế nào các mẫu cây luôn có một cột hàng đầu của không gian trống nhưng một dấu gạch dưới phải được thêm vào để đệm phía bên phải của cây cuối cùng.
Cũng thế:
- Không gian lưu trữ trên bất kỳ dòng nào là tốt, nhưng không nên có không gian hàng đầu không cần thiết.
- Các dòng mới hàng đầu không được phép (cây cao nhất sẽ chạm vào đỉnh của lưới văn bản đầu ra) và chỉ cho phép tối đa một dòng mới.
- Danh sách có thể chứa bất kỳ số nguyên nào từ -250 đến 250. Xử lý cây cao hơn là không cần thiết.
Mã ngắn nhất tính bằng byte thắng.
Thêm ví dụ
3
:
^
/ \
/ \
/ \
__|__
-2
:
^
/|\
/|\
__|__
0
:
_____
0, 0
:
_________
0, 1, 0
:
^
/ \
______|______
0, -1, 2, -3, 4
:
^
^ / \
^ /|\ / \
^ / \ /|\ / \
/|\ / \ /|\ / \
______|___|___|___|__
_
(gạch dưới) sau cây cuối cùng.