introduzione
Considera due array di numeri interi non vuoti, ad esempio A = [0 3 2 2 8 4] e B = [7 8 7 2] . Per eseguire l' aggiunta di allineamento su di essi, eseguiamo le seguenti operazioni:
Ripetere ogni array abbastanza volte per avere lunghezza totale mcm (lunghezza (A), lunghezza (B)) . Qui mcm sta per il minimo comune multiplo.
A -> [0 3 2 2 8 4][0 3 2 2 8 4] B -> [7 8 7 2][7 8 7 2][7 8 7 2]
Esegui un'aggiunta in termini di elementi sugli array ripetuti e taglia il risultato in ogni posizione in cui è presente un taglio in uno di essi.
A -> [0 3 2 2 8 4][0 3 2 2 8 4] B -> [7 8 7 2][ 7 8 7 2][7 8 7 2] -> [7 11 9 4][15 12][7 5][9 10 15 6]
Questa matrice di array è il tuo risultato.
L'obiettivo
I tuoi input sono due matrici di numeri interi non vuoti e il tuo output deve essere il risultato della loro aggiunta di allineamento, come definito sopra. Gli input e output possono essere in qualsiasi formato ragionevole. Non devi preoccuparti dell'overflow dei numeri interi quando esegui l'aggiunta.
Regole e punteggio
È possibile scrivere un programma completo o una funzione. Vince il conteggio dei byte più basso.
Casi test
[1] [4] -> [[5]]
[1,2,-3,-4] [15] -> [[16],[17],[12],[11]]
[0,-4] [2,1,0,-3] -> [[2,-3],[0,-7]]
[0,3,2,2,8,4] [7,8,7,2] -> [[7,11,9,4],[15,12],[7,5],[9,10,15,6]]
[18,17,16] [-1,-2,-3,-4] -> [[17,15,13],[14],[16,14],[15,13],[15],[16,14,12]]
[18,17,16,15] [-1,-2,-3,-4] -> [[17,15,13,11]]
[1,1,1,1,1] [6,5,6,5,6,5,6,2,1] -> [[7,6,7,6,7],[6,7,3,2],[7],[6,7,6,7,6],[7,3,2],[7,6],[7,6,7,6,7],[3,2],[7,6,7],[6,7,6,7,3],[2],[7,6,7,6],[7,6,7,3,2]]
[1,1,1,1,1,1] [6,5,6,5,6,5,6,2,1] -> [[7,6,7,6,7,6],[7,3,2],[7,6,7],[6,7,6,7,3,2]]
[1,1,1,1,1,1,1] [6,5,6,5,6,5,6,2,1] -> [[7,6,7,6,7,6,7],[3,2],[7,6,7,6,7],[6,7,3,2],[7,6,7],[6,7,6,7,3,2],[7],[6,7,6,7,6,7,3],[2],[7,6,7,6,7,6],[7,3,2],[7,6,7,6],[7,6,7,3,2],[7,6],[7,6,7,6,7,3,2]]