introduction
Considérons deux tableaux entiers non vides, disons A = [0 3 2 2 8 4] et B = [7 8 7 2] . Pour effectuer un ajout d'alignement sur eux, nous procédons comme suit:
Répétez chaque tableau suffisamment de fois pour obtenir une longueur totale de 1 cm (longueur (A), longueur (B)) . Ici, lcm représente le plus petit commun multiple.
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]
Effectuez l'addition élément par élément sur les tableaux répétés et coupez le résultat à chaque position où il y a une coupure dans l'un ou l'autre.
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]
Ce tableau de tableaux est votre résultat.
La tâche
Vos entrées sont deux tableaux d'entiers non vides, et votre sortie doit être le résultat de leur ajout d'alignement, tel que défini ci-dessus. Les entrées et les sorties peuvent être dans n'importe quel format raisonnable. Vous n'avez pas à vous soucier du dépassement d'entier lors de l'ajout.
Règles et notation
Vous pouvez écrire un programme complet ou une fonction. Le plus petit nombre d'octets gagne.
Cas de 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]]