Cho một mảng các số nguyên dương trong cơ sở 10, trong đó n > 0
, xuất đại diện của chúng thành một bức tường nhị phân.
Cái này hoạt động ra sao?
- Chuyển đổi từng số thành biểu diễn nhị phân của nó.
- Di chuyển đại diện với các số 0 đứng đầu theo chiều dài của số dài nhất tức là
1, 2
->1, 10
->01, 10
. - Tạo một bức tường trong đó
1
s là gạch và0
s bị thiếu gạch.
Một bức tường là một khối các ký tự trong đó bất kỳ ký tự có thể in nào đại diện cho một viên gạch và một khoảng trắng ( 32
) đại diện cho một viên gạch bị thiếu. Bạn có thể chọn bất kỳ ký tự nào cho viên gạch, nó không cần phải khác biệt trên tường miễn là nó không phải là một ký tự khoảng trắng. Nhân vật gạch bị thiếu phải là một không gian. Ví dụ dưới đây tôi đã sử dụng *
cho các viên gạch.
Thí dụ
Đầu vào:
[ 15, 7, 13, 11 ]
[ 1111, 111, 1101, 1011 ]
[ 1111, 0111, 1101, 1011 ]
Đầu ra:
**** *** ** * * **
Quy tắc
- Đầu vào phải được lấy trong cơ sở 10, nếu ngôn ngữ của bạn chấp nhận các cơ sở khác, bạn không thể sử dụng chúng.
- Hàng đầu và dấu vết dòng mới được cho phép.
- Đầu vào có thể được lấy dưới dạng danh sách các số nguyên, các đối số riêng biệt hoặc bất kỳ định dạng hợp lý nào.
- Đầu ra có thể ở bất kỳ định dạng hợp lý nào: chuỗi phân tách dòng mới, mảng dòng, mảng 2d, v.v.
- Sơ hở tiêu chuẩn là không được phép.
Các trường hợp thử nghiệm
Lưu ý rằng trong trường hợp thử nghiệm đầu tiên, tất cả các lớp đều có một viên gạch trống ở cuối.
[ 14, 4, 6, 2 ]
***
*
**
*
[ 1, 2, 4, 8, 16 ]
*
*
*
*
*
[ 15, 11, 15, 15 ]
****
* **
****
****
[ 11, 10, 9, 8 ]
* **
* *
* *
*
Đây là mã golf nên mã ngắn nhất sẽ thắng!
[[1, " ", 1, " "], ...]