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
0untuk mendapatkan matriks. Dengan contoh input, hasilnya sejauh ini adalah3 5 0 4 16 8 0 12 11Untuk 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 1Ouput 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