Write a method named arraySum
that accepts two arrays of real numbers a1 and a2 as parameters and returns a new array a3 such that each element of a3 at each index i is the sum of the elements at that same index i in a1 and a2. For example, if a1 stores {4.5, 5.0, 6.6}
and a2 stores {1.1, 3.4, 0.5}
, your method should return {5.6, 8.4, 7.1}
, which is obtained by adding 4.5 + 1.1, 5.0 + 3.4, and 6.6 + 0.5.
If the arrays a1 and a2 are not the same length, the result returned by your method should have as many elements as the larger of the two arrays. If a given index i is in bounds of a1 but not a2 (or vice versa), your result array's element at index i should be equal to the value of the element at index i in the longer of a1 or a2. For example, if a1 stores {1.8, 2.9, 9.4, 5.5}
and a2 stores {2.4, 5.0}
, your method should return {4.2, 7.9, 9.4, 5.5}
.
The table below shows some additional calls to your method and the expected values returned:
Arrays |
Call and Value Returned |
double[] a1 = {4.5, 2.7, 3.4, 0.8};
double[] a2 = {1.4, 8.9, -1.0, 2.3};
|
arraySum(a1, a2) returns {5.9, 11.6, 2.4, 3.1}
|
double[] ax = {2.4, 3.8};
double[] ay = {0.2, 9.1, 4.3, 2.8, 1.4};
|
arraySum(ax, ay) returns {2.6, 12.9, 4.3, 2.8, 1.4}
|
double[] aa = {1.0, 2.0, 3.0};
double[] ab = {4.0, 5.0};
|
arraySum(aa, ab) returns {5.0, 7.0, 3.0}
|
double[] ai = {};
double[] aj = {42.0};
|
arraySum(ai, aj) returns {42.0}
|
For full credit, you should not modify the elements of a1 or a2. You may not use a String
to solve this problem.