Recentemente comecei a solucionar os exercícios de logica do URI utilizando javascript e me deparei com um que pedia para receber 3 valores de entrada e printar o maior entre eles (exercício 1013). No enunciado, eles dão a fórmula "maiorAB = A+B+abs(A-B)/2". Não entendi muito bem como funcionava a fórmula então pensei em outro método, que foi o seguinte:
function estabeleceMaior(valorA, valorB, valorC){
var maior = valorA;
if(valorA <= valorB){
maior = valorB;
}
if(valorB <= valorC){
maior = valorC
}
return maior;
}
Fiz os testes no VS code e funcionou, porém quando dei o commit no URI recebi um "wrong awnser 100%" :C Posteriormente, fiz umas pesquisas e entendi a formula (mais especificamente o "abs") e usei o Math.abs, ficou assim:
var maiorAB= (valorA + valorB + Math.abs(valorA - valorB)) / 2;
var maiorABC = (maiorAB + valorC + Math.abs(maiorAB - valorC)) / 2;
console.log(maiorABC);
Dei commit e foi aceito, porém fiquei intrigado pelo commit anterior ter dado errado se quando fiz os testes funcionou normalmente. Alguém sabe me explicar qual foi o problema na primeira lógica que foi utilizada?