CJam, 31 27 byte
CJam mới hơn rất nhiều so với thử thách này, vì vậy câu trả lời này không đủ điều kiện để được chấp nhận. Đây là một thử thách tối thứ bảy gọn gàng, mặc dù. ;)
8S*9,:)+9*9/2%{_W%1>+z}2*N*
Kiểm tra nó ở đây.
Ý tưởng là hình thành góc phần tư phía trên bên trái trước. Đây là cách nó hoạt động:
Đầu tiên, hình thành chuỗi " 123456789"
, sử dụng 8S*9,:)+
. Chuỗi này dài 17 ký tự. Bây giờ chúng tôi lặp lại chuỗi 9 lần, và sau đó chia nó thành chuỗi con có độ dài 9 với 9/
. Sự không phù hợp giữa 9 và 17 sẽ bù cho mỗi hàng khác một ký tự bên trái. In từng chuỗi con trên dòng riêng của chúng tôi, chúng tôi nhận được:
1
23456789
12
3456789
123
456789
1234
56789
12345
6789
123456
789
1234567
89
12345678
9
123456789
Vì vậy, nếu chúng ta bỏ mọi hàng khác (hoạt động thuận tiện bằng cách thực hiện 2%
), chúng ta sẽ có được một góc phần tư như mong muốn:
1
12
123
1234
12345
123456
1234567
12345678
123456789
Cuối cùng, chúng tôi phản chiếu điều này hai lần, hoán chuyển lưới ở giữa để đảm bảo hai hoạt động phản chiếu đi dọc theo các trục khác nhau. Bản thân việc phản chiếu chỉ là
_ "Duplicate all rows.";
W% "Reverse their order.";
1> "Discard the first row (the centre row).";
+ "Add the other rows.";
Cuối cùng, chúng tôi chỉ tham gia tất cả các dòng với dòng mới, với N*
.