TUGAS
Tujuannya adalah untuk menulis sebuah program yang memutar daftar dua dimensi sebanyak 45 derajat, ia harus mampu melakukan ini hingga 7 * 45 (sekaligus) sebelum mengembalikan daftar. Daftar tidak harus persegi atau persegi panjang. Anda harus menyertakan output untuk contoh dalam jawaban Anda. Ini juga harus berfungsi untuk kasus-kasus yang tidak ada dalam contoh ... lingkaran, segitiga dll. Anda tidak dapat menggunakan fungsi yang sudah ada sebelumnya untuk melakukan semuanya.
Semua daftar akan memiliki setidaknya satu sumbu simetri (N, S, E, W). Semua sublist harus diasumsikan sebagai pusat-sejajar. Daftar ganjil genap akan bergeser ke kiri untuk menyelaraskan dengan benar. Lihat contoh 4 untuk celah di tengah sublist.
MEMASUKKAN
Program Anda akan menggunakan variabel bernama l
mengandung daftar, dan variabel bernama n
menentukan jumlah daftar akan diputar (n * 45) ( n
akan selalu kurang dari 7, dan bisa 0). Ia harus menerima l
sublist berisi tipe data apa pun yang dapat dicetak (desimal, List, int, String [] .. dll), tetapi sublist hanya akan berisi satu tipe data pada satu waktu.
Anda tidak perlu menerima input konsol atau menggunakan stdin. Baris yang menentukan nilai tes l
dan n
tidak termasuk dalam jumlah karakter, tetapi harus dimasukkan dalam kode yang dikirimkan.
KELUARAN
Program Anda harus mencetak daftar dalam orientasi yang benar, NIL dapat digunakan untuk membuat daftar pad jika Anda inginkan, tetapi padding tidak diperlukan (Anda mendapatkan wajah tersenyum jika mereka empuk, meskipun). Sub-daftar tidak harus diindentasi atau dipisahkan oleh baris baru seperti pada contoh.
CONTOH
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
waktu dan tidak padan
· 45 °? Saya bertanya karena saya cukup yakin bahwa saya tidak akan mendapatkan hasil dari contoh 3 dengan menerapkan tujuh rotasi 45 °.Jawaban:
Python -
234201Versi Tidak Serigala
Ini menggunakan perkalian (dari bilangan kompleks) dengan bilangan kompleks sesuai dengan rotasi dan peregangan.
[1,1+1j,1j,1j-1,-1,-1j-1,-1j,1-1j]
adalah bilangan kompleks yang sesuai dengan sudut yang diperlukan dan menggunakan faktor penskalaan terkecil sehingga untuk input bilangan bulat kompleks, output adalah bilangan bulat kompleks lagi.sumber
else: line += [None]
setelah keempat dari baris terakhir.