A média dos antípodas
Neste desafio, você recebe um array e, em seguida, deve obter um array menor seguindo três etapas:
- Divida o array em duas partes de mesmo comprimento. Se o array fornecido tiver comprimento ímpar, você deverá eliminar o número que está no meio do array para obter duas partes iguais.
- Some cada número da primeira parte com cada número da segunda parte invertida, obtendo um novo array único com o mesmo comprimento das duas partes anteriores.
- Divida por dois cada número do array final.
Dado um array de inteiros arr, implemente uma função que retorne um novo array aplicando o algoritmo acima.
Exemplos
antipodesAverage([1, 2, 3, 4]) ➞ [2.5, 2.5]
// Left part = [1, 2]
// Reversed right part = [4, 3]
// Array resulting from the sum of each pair = [5, 5]
// Each number is divided by two = [2.5, 2.5]
antipodesAverage([1, 2, 3, 4, 5]) ➞ [3, 3]
// The length of array is odd, number 3 (in the middle) is eliminated
// Left = [1, 2]
// Reversed right = [5, 4]
// Sum = [6, 6]
// Division by two = [3, 3]
antipodesAverage([-1, -2]) ➞ [-1.5]
// (-1 + -2) / 2 = [-1.5]Observações
- Todo
arrfornecido conterá pelo menos dois números. - No
arrfornecido, os números serão sempre inteiros (positivos ou negativos), mas os números do array final retornado também podem ser do tipo float (positivos ou negativos; consulte os exemplos #1 e #3). - Você pode realizar as três etapas separadamente ou pensar em como sintetizar o algoritmo para obter o resultado.