A média dos antípodas
Dado um array de inteiros, crie Program.antipodesAverage(int[]) e produza um array menor em três etapas:
- Divida o array em duas metades externas de mesmo tamanho. Se o comprimento for ímpar, descarte o elemento central para que as duas metades fiquem iguais.
- Inverta a segunda metade e some cada valor da primeira metade ao valor correspondente da metade invertida.
- Divida por dois cada soma resultante.
Exemplos
Program.antipodesAverage(new int[] { 1, 2, 3, 4 }) ➞ new double[] { 2.5, 2.5 }
// A parte esquerda [1, 2] forma pares com a parte direita invertida [4, 3]; as somas [5, 5] se tornam [2.5, 2.5].
Program.antipodesAverage(new int[] { 1, 2, 3, 4, 5 }) ➞ new double[] { 3.0, 3.0 }
// Descarte o valor central 3. A parte esquerda [1, 2] forma pares com [5, 4]; as somas [6, 6] se tornam [3, 3].
Program.antipodesAverage(new int[] { -1, -2 }) ➞ new double[] { -1.5 }
// (-1 + -2) / 2 = -1.5.Observações
- Cada entrada contém pelo menos dois números.
- Os valores de entrada são números inteiros, positivos ou negativos, mas as médias retornadas podem ser valores de ponto flutuante.
- As etapas podem ser implementadas separadamente ou combinadas sem alterar o resultado.