Terinspirasi oleh pertanyaan Stack Overflow ini .
Tantangan
Memasukkan
Array matriks persegi berisi bilangan bulat non-negatif.
Keluaran
Matriks kuadrat dibangun dari matriks input sebagai berikut.
Misalkan menjadi ukuran dari setiap matriks input, dan jumlah matriks input.
Untuk kejelasan, pertimbangkan contoh input matriks berikut ( , ):
3 5
4 10
6 8
12 11
2 0
9 1
- Mulai dengan matriks input pertama.
- Geser matriks input kedua N −1 ke bawah dan N −1 ke kanan, sehingga entri kiri atasnya bertepatan dengan entri kanan bawah dari yang sebelumnya.
Bayangkan yang kedua, geser matriks seolah-olah itu ditumpuk di atas yang pertama. Jumlahkan dua nilai pada entri kebetulan. Tulis nilai lainnya, dan isi entri yang tersisa dengan
0
untuk mendapatkan matriks. Dengan contoh input, hasilnya sejauh ini adalah3 5 0 4 16 8 0 12 11
Untuk setiap matriks input yang tersisa, goyangkan itu sehingga kiri atas bertepatan dengan kanan bawah dari matriks hasil akumulasi sejauh ini. Dalam contoh ini, termasuk memberi masukan matriks ketiga
3 5 0 0 4 16 8 0 0 12 13 0 0 0 9 1
Ouput adalah matriks diperoleh setelah memasukkan matriks input terakhir.
Aturan dan klarifikasi tambahan
- dan adalah bilangan bulat positif.
- Anda bisa mengambil dan sebagai input tambahan.
- Input dan output dapat diambil oleh apa pun yang wajar . Formatnya fleksibel seperti biasa.
- Program atau fungsi diizinkan, dalam bahasa pemrograman apa pun .Celah standar dilarang .
- Kode terpendek dalam byte menang.
Kasus uji:
Dalam setiap kasus, matriks input ditampilkan terlebih dahulu, kemudian output.
, :
3 5 4 10 6 8 12 11 2 0 9 1 3 5 0 0 4 16 8 0 0 12 13 0 0 0 9 1
, :
3 5 4 10 3 5 4 10
, :
4 7 23 5 39
, :
11 11 8 6 8 12 11 0 4 4 1 13 9 19 11 13 4 2 11 11 8 0 0 6 8 12 0 0 11 0 8 1 13 0 0 9 19 11 0 0 13 4 2
, :
14 13 10 0 13 20 21 3 9 22 0 8 17 3 19 16 14 13 0 0 0 10 13 20 0 0 0 21 12 22 0 0 0 0 25 3 0 0 0 19 16