Nhiệm vụ của bạn là viết một chương trình có độ dài chẵn , in hình vuông nghệ thuật ASCII (được mô tả bên dưới), làm tăng độ dài cạnh của nó thêm 1 đơn vị mỗi lần mã nguồn gốc được dán ở giữa mã hiện tại.
Tôi khá khó khăn để xác định nhiệm vụ này rất tốt, vì vậy tôi sẽ cho bạn một ví dụ:
Giả sử mã ban đầu của bạn là
CODE
và nó được in:0
Sau đó, chèn
CODE
vào giữa: mã của bạn trở thànhCOCODEDE
và nó sẽ in:00 00
Chèn lại
CODE
ở giữa: mã của bạn trở thànhCOCOCODEDEDE
và nên in:000 000 000
Và như vậy. Về mặt lý thuyết, câu trả lời của bạn sẽ hoạt động sau bất kỳ số lần lặp nào, nhưng tôi hiểu nếu, do giới hạn hiệu suất ngôn ngữ, nó không thể chạy hợp lý trên một ngưỡng nhất định.
Một số quy tắc:
Bạn có thể sử dụng bất kỳ ASCII có thể in (32-127) làm ký tự để sử dụng cho hình vuông của mình. Sự lựa chọn của bạn cần phải là hằng số (Bạn nên sử dụng cùng một ký tự cho mỗi lần lặp).
Hình vuông đầu ra ban đầu phải có độ dài cạnh 1 .
Một hình vuông nghệ thuật ascii được định nghĩa là một chuỗi có N dòng (được phân tách bằng các dòng / dòng mới N-1 ) và với mỗi dòng chứa N bản sao của ký tự được chọn.
Đầu ra của bạn không được phép chứa bất kỳ khoảng trắng bên ngoài nào, ngoài dòng mới.
Bạn có thể sử dụng mặc định cho đầu vào và đầu ra (chương trình hoặc chức năng được cho phép, nhưng đoạn mã thì không).
Phần giữa mã của bạn được định nghĩa là điểm mà mã nguồn có thể được chia thành hai phần sao cho hai phần bằng nhau.
Câu trả lời của bạn sẽ được tính theo độ dài của chương trình ban đầu của bạn , tính bằng byte. Số byte thấp nhất sẽ thắng. Trong trường hợp có hòa, câu trả lời đã được gửi trước đó sẽ thắng.
Bạn có thể sử dụng chương trình này để áp dụng các phần chèn thêm mà không cần phải làm điều đó bằng tay.