El promedio de los antípodas

Dado un arreglo de enteros, crea Program.antipodesAverage(int[]) y genera un arreglo más pequeño en tres pasos:

  1. Divide el arreglo en dos mitades externas de igual tamaño. Si su longitud es impar, descarta el elemento central para que ambas mitades sean iguales.
  2. Invierte la segunda mitad y suma cada valor de la primera mitad con el valor correspondiente de la mitad invertida.
  3. Divide entre dos cada suma resultante.

Ejemplos

Program.antipodesAverage(new int[] { 1, 2, 3, 4 }) ➞ new double[] { 2.5, 2.5 }
// La parte izquierda [1, 2] se empareja con la parte derecha invertida [4, 3]; las sumas [5, 5] se convierten en [2.5, 2.5].

Program.antipodesAverage(new int[] { 1, 2, 3, 4, 5 }) ➞ new double[] { 3.0, 3.0 }
// Descarta el valor central 3. La parte izquierda [1, 2] se empareja con [5, 4]; las sumas [6, 6] se convierten en [3, 3].

Program.antipodesAverage(new int[] { -1, -2 }) ➞ new double[] { -1.5 }
// (-1 + -2) / 2 = -1.5.

Notas

  • Cada entrada contiene al menos dos números.
  • Los valores de entrada son números enteros, positivos o negativos, pero los promedios devueltos pueden ser valores de punto flotante.
  • Los pasos pueden implementarse por separado o combinarse sin cambiar el resultado.