ЗАВДАННЯ
Мета полягає в тому, щоб написати програму, яка обертає будь-який двовимірний список на 45 градусів, перед поверненням списку він повинен бути в змозі зробити це до 7 * 45 (відразу). Список не обов’язково буде квадратним або прямокутним. Ви повинні включити висновок для прикладів у своїй відповіді. Він також повинен працювати у випадках, яких немає в прикладах ... кола, трикутники тощо. Ви не можете використовувати попередньо існуючу функцію, щоб виконати все.
Усі списки матимуть щонайменше одну вісь симетрії (N, S, E, W). Усі підсписи слід вважати вирівняними по центру. Непарні списки змістяться вліво, щоб правильно вирівняти. Дивіться приклад 4 щодо пропусків у середині підпису.
ВХОД
Ваша програма буде використовувати змінну, яка l
містить список, а змінну з іменем, що n
визначає суму, яку список буде обернено (n * 45) ( n
завжди буде менше 7, а може бути 0). Потрібно прийняти, l
що містять підлісти будь-якого типу даних для друку (десятковий, Список, 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] ]
n
разів, а не на n
45 °? Я прошу, бо я майже впевнений, що я не отримав результат прикладу 3, застосувавши сім обертів на 45 °.