仕事
目標は、2次元のリストを45度回転するプログラムを作成することです。リストを返す前に、これを最大7 * 45(一度に)実行できる必要があります。リストは必ずしも正方形または長方形であるとは限りません。回答に例の出力を含める必要があります。また、円、三角形などの例にないケースでも機能する必要があります。既存の関数を使用してすべてを行うことはできません。
すべてのリストには、少なくとも1つの対称軸(N、S、E、W)があります。すべてのサブリストは中央揃えであると想定されます。奇数/偶数リストは、適切に整列するために左にシフトします。サブリストの中央のギャップについては、例4を参照してください。
入力
プログラムはl、リストを含むという名前の変数と、リストのn回転量を指定するという名前の変数(n * 45)を使用します(n常に7未満で、0にすることができます)。l印刷可能なデータ型(10進数、List、int、String [] ..など)のサブリストを含むことを受け入れる必要がありますが、サブリストには一度に1つのデータ型しか含まれません。
コンソール入力を受け入れる必要も、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] ]
nはなく、リストの時間を回転させたいnですか?私は、45°の回転を7回適用しても例3の結果が得られないことを確信しているので、私は尋ねています。