CJam,31岁 27个字节
CJam比此挑战要新得多,因此此答案不符合要求。但是,这是一个整洁的星期六晚上的小挑战。;)
8S*9,:)+9*9/2%{_W%1>+z}2*N*
在这里测试。
这个想法是首先形成左上象限。这是这样的:
首先,形成串" 123456789"
,使用8S*9,:)+
。该字符串长度为17个字符。现在,我们将字符串重复9次,然后使用将其拆分为长度为9的子字符串9/
。9和17之间的不匹配将使其他所有行向左偏移一个字符。在自己的行上打印每个子字符串,我们得到:
1
23456789
12
3456789
123
456789
1234
56789
12345
6789
123456
789
1234567
89
12345678
9
123456789
因此,如果我们仅丢弃其他所有行(这样做很方便2%
),我们将根据需要获得一个象限:
1
12
123
1234
12345
123456
1234567
12345678
123456789
最后,我们对此进行两次镜像,将网格置于两者之间,以确保两次镜像操作沿不同的轴进行。镜像本身就是
_ "Duplicate all rows.";
W% "Reverse their order.";
1> "Discard the first row (the centre row).";
+ "Add the other rows.";
最后,我们将所有行与换行符加在一起N*
。