任务
目标是编写一个将任何二维列表旋转45度的程序,返回二维列表之前,它必须能够做到一次最大7 * 45的旋转。该列表不一定是正方形或矩形。您必须在答案中包括示例的输出。它也必须适用于示例中未涉及的情况...圆,三角形等。您不能使用预先存在的功能来完成全部操作。
所有列表将至少具有一个对称轴(N,S,E,W)。所有子列表均假定为居中对齐。奇偶列表将向左移动以正确对齐。有关子列表中间的空白,请参见示例4。
输入
您的程序将使用一个l
包含列表的变量,以及一个n
指定列表旋转量的变量(n * 45)(n
始终小于7,并且可以为0)。它必须接受l
包含任何可打印数据类型(十进制,List,int,String []等的子列表),但是子列表一次仅包含一种数据类型。
您不需要接受控制台输入或使用stdin。指定的测试值的线l
和n
不包括在所述字符计数,但必须包括在所提交的代码。
输出值
您的程序必须以正确的方向打印列表,如果需要,可以使用NIL填充列表,但是不需要填充(但是如果填充了,您会得到一张笑脸)。子列表不必像示例中那样用换行符缩进或分隔。
例子
1个
IN
l=
[[0 , 1 , 2],
[3 , 4 , 5],
[6 , 7 , 8]]
n=1
OUT
[ [0],
[3 , 1],
[6 , 4 , 2],
[7 , 5],
[8] ]
2
IN
l=
[[a , b , c , d],
[e , f , g , h]]
n=2
OUT
[[e , a],
[f , b],
[c , g],
[h , d]]
3
IN
l=
[[A , B , C , D , E , F],
[G , H , I , J],
[K , L],
[0 , 8],
[M , N],
[O , P , Q , R],
[S , T , U , V , W , X]]
n=7
OUT
[ [F],
[E],
[D , J],
[C , I],
[B , H , L],
[A , G , K , 8],
[0 , N , R , X],
[M , Q , W],
[P , V],
[O , U],
[T],
[U] ]
4
IN
l=
[[9 , 8 , 7 , 6],
[5],
[4 , 3 , 2 , 1],
[0] ]
n=3
OUT
[ [0 , 4],
[3],
[2 , 5 , 9],
[1 ,NIL, 8],
[7],
[6], ]
5
IN
l=
[ [Q],
[X ,NIL, Y],
[Z] ]
n=2
OUT
[ [X],
[Z ,NIL, Q],
[Y] ]
4
哦 太难了 看起来很有趣!
—
TheDoctor 2014年
两个问题:1)我们不必填写清单,对吗?2)您是否真的要我们旋转列表
—
Wrzlprmft
n
时间而不是旋转n
45°?我之所以问是因为我可以肯定的是,我不会通过施加七个45°旋转来获得示例3的结果。
不,您不必填充。尽管不必以这种方式输出列表,但列表应该能够以正确的视觉方向排列...输出将没有换行符。列表旋转n * 45。
—
2014年