BÀI TẬP
Mục tiêu là viết một chương trình xoay bất kỳ danh sách hai chiều nào 45 độ, nó phải có khả năng thực hiện điều này lên đến 7 * 45 (cùng một lúc) trước khi trả lại danh sách. Danh sách sẽ không nhất thiết phải là hình vuông hoặc hình chữ nhật. Bạn phải bao gồm đầu ra cho các ví dụ trong câu trả lời của bạn. Nó cũng phải hoạt động đối với các trường hợp không có trong các ví dụ ... hình tròn, hình tam giác, v.v. Bạn không thể sử dụng hàm có sẵn để thực hiện toàn bộ.
Tất cả các danh sách sẽ có ít nhất một trục đối xứng (N, S, E, W). Tất cả các danh sách phụ sẽ được coi là liên kết trung tâm. Danh sách chẵn sẽ chuyển sang bên trái để căn chỉnh chính xác. Xem ví dụ 4 cho các khoảng trống ở giữa danh sách phụ.
ĐẦU VÀO
Chương trình của bạn sẽ sử dụng một biến có tên lchứa danh sách và một biến có tên nchỉ định số lượng danh sách sẽ được xoay (n * 45) ( nsẽ luôn nhỏ hơn 7 và có thể là 0). Nó sẽ phải chấp nhận lchứa danh sách con của bất kỳ loại dữ liệu có thể in nào (thập phân, Danh sách, int, Chuỗi [] .. vv), nhưng danh sách phụ sẽ chỉ chứa một loại dữ liệu tại một thời điểm.
Bạn không cần chấp nhận đầu vào giao diện điều khiển hoặc sử dụng stdin. Các dòng chỉ định giá trị thử nghiệm của lvà nkhông được bao gồm trong số ký tự, nhưng phải được bao gồm trong mã được gửi.
ĐẦU RA
Chương trình của bạn phải in danh sách theo đúng hướng, NIL có thể được sử dụng để đệm danh sách nếu bạn muốn, nhưng đệm là không cần thiết (mặc dù bạn có khuôn mặt cười nếu chúng được đệm). Danh sách phụ không phải được thụt lề hoặc phân tách bằng dòng mới như trong các ví dụ.
VÍ DỤ
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] ]
nthời gian danh sách chứ không phải bằng n45 °? Tôi đang hỏi bởi vì tôi khá chắc chắn rằng tôi sẽ không thu được kết quả của ví dụ 3 bằng cách áp dụng bảy góc quay 45 °.