ZADANIE
Celem jest napisanie programu, który obraca dowolną dwuwymiarową listę o 45 stopni, musi być w stanie to zrobić do 7 * 45 (jednocześnie) przed zwróceniem listy. Lista niekoniecznie będzie kwadratowa lub prostokątna. Musisz podać wynik dla przykładów w swojej odpowiedzi. Musi także działać w przypadkach, których nie ma w przykładach ... kółkach, trójkątach itp. Nie można użyć wcześniej istniejącej funkcji, aby wykonać całą czynność.
Wszystkie listy będą miały co najmniej jedną oś symetrii (N, S, E, W). Wszystkie listy podrzędne należy zakładać jako wyśrodkowane. Listy nieparzyste zostaną przesunięte do lewej, aby prawidłowo wyrównać. Zobacz przerwy 4 w środku listy podrzędnej.
WKŁAD
Twój program użyje zmiennej o nazwie lzawierającej listę oraz zmiennej o nazwie nokreślającej kwotę, którą lista zostanie obrócona (n * 45) ( nzawsze będzie mniejsza niż 7 i może wynosić 0). Będzie musiał zaakceptować lzawieranie list podrzędnych dowolnego typu danych do wydruku (liczba dziesiętna, lista, liczba całkowita, ciąg [] .. itd.), Ale listy podrzędne będą zawierać tylko jeden typ danych na raz.
Nie musisz akceptować danych wejściowych konsoli ani używać standardowego wejścia. Wiersze określające wartości testowe li nnie są uwzględniane w liczbie znaków, ale muszą być zawarte w przesłanym kodzie.
WYDAJNOŚĆ
Twój program musi wydrukować listę w prawidłowej orientacji, NIL może być używany do wypełniania list, jeśli chcesz, ale wypełnianie nie jest konieczne (jednak, jeśli są wypełnione, masz uśmiechniętą twarz). Podlisty nie muszą być wcięte ani oddzielane znakami nowej linii, jak w przykładach.
PRZYKŁADY
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] ]
nrazy, a nie o n45 °? Pytam, ponieważ jestem całkiem pewien, że nie uzyskałbym wyniku z przykładu 3, stosując siedem obrotu o 45 °.