Ispirato da questa domanda Stack Overflow .
La sfida
Ingresso
Un array di matrici quadrate contenenti numeri interi non negativi.
Produzione
Una matrice quadrata costruita dalle matrici di input come segue.
Sia la dimensione di ciascuna matrice di input e il numero di matrici di input.
Per chiarezza, considerare le seguenti matrici di input di esempio ( , ):
3 5
4 10
6 8
12 11
2 0
9 1
- Inizia con la prima matrice di input.
- Sposta la seconda matrice di input N −1 passi in basso e N −1 passi a destra, in modo che la sua voce in alto a sinistra coincida con quella in basso a destra di quella precedente.
Immagina la seconda matrice spostata come se fosse sovrapposta alla prima. Somma i due valori all'entrata coincidente. Scrivi gli altri valori e riempi le voci rimanenti con
0
per ottenere una matrice . Con l'input di esempio, il risultato è finora3 5 0 4 16 8 0 12 11
Per ogni matrice di input rimanente, sfalsarla in modo che la sua parte superiore sinistra coincida con la parte inferiore destra della matrice del risultato accumulato finora. Nell'esempio, include la terza matrice di input
3 5 0 0 4 16 8 0 0 12 13 0 0 0 9 1
L'uscita è la matrice ottenuta dopo aver incluso l'ultima matrice di input.
Regole e chiarimenti aggiuntivi
- e sono numeri interi positivi.
- Opzionalmente puoi prendere e come input aggiuntivi.
- Input e output possono essere presi con qualsiasi mezzo ragionevole . Il loro formato è flessibile come al solito.
- Programmi o funzioni sono consentiti, in qualsiasi linguaggio di programmazione . Sono vietate le scappatoie standard .
- Vince il codice più breve in byte.
Casi test:
In ogni caso, vengono mostrate prima le matrici di input, quindi l'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