Thử thách
Chúng ta đều biết về cây Giáng sinh bình thường - nhưng về cây Giáng sinh lộn ngược ! Đây là một thử thách theo chủ đề Giáng sinh khá dễ dàng. Mục tiêu của thử thách này là biến tôi thành một cây thông Giáng sinh lộn ngược của ASCII. Dưới đây là các quy tắc cho thử thách này:
- Chấp nhận một số nguyên lẻ, dương. Bạn có thể cho rằng nó sẽ luôn ở giữa
7
và51
. Cơ sở của cây sẽ được tạo thành từ các nhân vật:
___ \ / |
Đỉnh của cây (ngôi sao), sẽ được tạo thành từ một
*
.Mỗi dòng của cây sẽ được xây dựng bằng cách sử dụng định dạng
<?>
mà?
là bất kỳ số lượng-
s. Ví dụ, nếu tạo một dòng có độ dài5
, dòng nên là<--->
. Hoặc nếu tạo một dòng có chiều dài8
, dòng nên được<------>
.Đây là cách thân cây nên được xây dựng:
Lấy số lẻ
n
được đưa ra làm đầu vào và tạo một dòng của cây có chiều dài.Trừ
4
từn
và tạo ra một dòng của cây mà chiều dài.Trừ
2
từn
và tạo ra một dòng của cây mà chiều dài.Giảm
n
theo2
. Sau đó, trừ khin
bằng5
, quay lại bước 2.
Cơ sở (xem bước 2.) ngôi sao (xem bước 3.) và mỗi dòng của cây (xem bước 4. và 5.) đều phải được căn giữa bằng cách sử dụng đầu vào số lẻ ban đầu (xem bước 1.) làm mức tối đa chiều rộng.
Ví dụ / Trường hợp kiểm tra
odd number inputed: 7
___
\ /
|
<-----> line length -> 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
odd number inputed: 13
___
\ /
|
<-----------> line length -> 13
<-------> line length -> 13 - 4 = 9
<---------> line length -> 13 - 2 = 11
<-----> line length -> 11 - 4 = 7
<-------> line length -> 11 - 2 = 9
<---> line length -> 9 - 4 = 5
<-----> line length -> 9 - 2 = 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
odd number inputed: 9
___
\ /
|
<-------> line length -> 9
<---> line length -> 9 - 4 = 5
<-----> line length -> 9 - 2 = 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
odd number inputed: 17
___
\ /
|
<---------------> line length -> 17
<-----------> line length -> 17 - 4 = 13
<-------------> line length -> 17 - 2 = 15
<---------> line length -> 15 - 4 = 11
<-----------> line length -> 15 - 2 = 13
<-------> line length -> 13 - 4 = 9
<---------> line length -> 13 - 2 = 11
<-----> line length -> 11 - 4 = 7
<-------> line length -> 11 - 2 = 9
<---> line length -> 9 - 4 = 5
<-----> line length -> 9 - 2 = 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
Quy tắc
- Tiêu chuẩn áp dụng .
- Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte sẽ thắng!
repeat the above steps until the odd number minus 2 equals 5
- trong đầu vào đầu tiên, số lẻ là 7 và 7-2 = 5, do đó, cây sẽ kết thúc ngay lập tức (tôi biết ý của bạn là gì, nhưng nó cần phải đọc lại)
7
, đầu vào tối thiểu, trước tiên bạn sẽ tạo ba dòng cây (các bước phụ .1.1, .1.2, .1.3), sau đó trừ đi 2
số lẻ và kiểm tra xem nó có bằng không 5
. Hướng dẫn kiểm tra xem "số lẻ trừ 2 bằng 5" có ở cuối không, ba bước còn lại phải được thực hiện trước. Nhưng để trả lời bình luận đầu tiên của bạn, điều đó sẽ ổn thôi.
7
làm đầu vào hay nếu bạn có thể chấp nhận 4
, như trong số lẻ thứ tư (hoặc 3
nếu nó được lập chỉ mục 0).