Yang ini terinspirasi oleh tantangan tabel perkalian terbaru Calvin Hobbies .
Tulis fungsi atau program yang mengambil integer Nsebagai input dan mencetak atau mengembalikan spiral multiplikasi unik N-by-N. Kode harus (dalam teori) bekerja untuk N antara 0 dan 1000 (mengeluarkan ini bisa jadi sulit). Output harus setara dengan tabel yang dihasilkan oleh prosedur berikut:
Isi tabel perkalian N-by-N. Misalnya untuk N = 3:
1 2 3 2 4 6 3 6 9Ikuti spiral searah jarum jam dari sudut kiri atas, perhatikan angka yang Anda kunjungi. Ketika Anda mengunjungi nomor yang sudah Anda kunjungi, gantilah dengan 0.
Beberapa contoh mungkin membuatnya lebih jelas:
n = 0:
0
n = 1:
1
n = 2: // Spiral order:
1 2 // 1 2
0 4 // 4 3
n = 3:
1 2 3 // 1 2 3
0 4 6 // 8 9 4
0 0 9 // 7 6 5
n = 4:
1 2 3 4 // 1 2 3 4
0 0 6 8 // 12 13 14 5
0 0 9 12 // 11 16 15 6
0 0 0 16 // 10 9 8 7
n = 5:
1 2 3 4 5
0 0 6 8 10
0 0 9 12 15
0 0 0 16 20
0 0 0 0 25
n = 10:
1 2 3 4 5 6 7 8 9 10
0 0 0 0 0 12 14 16 18 20
0 0 0 0 15 0 21 24 27 30
0 0 0 0 0 0 28 32 36 40
0 0 0 0 25 0 35 0 45 50
0 0 0 0 0 0 42 48 54 60
0 0 0 0 0 0 49 56 63 70
0 0 0 0 0 0 0 64 72 80
0 0 0 0 0 0 0 0 81 90
0 0 0 0 0 0 0 0 0 100
Jumlahnya ditemukan seperti ini:
Setiap format output yang masuk akal diterima, tetapi harus berupa matriks N-by-N, tidak bisa hanya daftar. Format seperti yang di bawah ini diterima, karena ada N kolom 1-by-N yang mudah dibedakan, atau baris N-by-1:
[[1 2 3][0 4 6][0 0 9]] <-- OK
[[1 0 0][2 4 0][3 6 9]] <-- OK
ans = <-- OK
1 2 3
0 4 6
0 0 9
Kode terpendek dalam byte menang.
n=0mana tidak ada nol dalam tabel perkalian. Saya bisa mengerti n=1akan menghasilkan 1, tetapi mengapa termasuk nol?
n=0harus berupa matriks 0-by-0, atau pertanyaannya tidak konsisten.



