Hola, estoy aprendiendo a programar java y me han mandado un ejercicio que pide seleccionar el número en la posición del medio de 3 números solo con operadores ternarios.
Ejemplo:
a= 1
b=2
c=3
El número del medio es el 2.
Una forma de resolverlo es esta:
a<c
b>a
b<c
entonces del medio es el b.
Bien buscando por internet he encontrado lo siguiente:
if ( (a - b) * (c - a) >= 0 )
return a;
else if ( (b - a) * (c - b) >= 0 )
return b;
else
return c;
Que con operadores ternarios quedaría de la siguiente forma:
double sMedio = ((sNuma - sNumb)*(sNumc - sNuma) >=0) ? sNuma : ( (sNumb - sNuma) * (sNumc - sNumb) >= 0 ? sNumb: sNumc);
Mi pregunta es la siguiente (igual es muy obvia):
A que "principio" lógica o lo que sea matemática se debe que (a - b)*(c - a) >=0 (es decir positivo) entonces el número del medio sea en este caso el a.
Me gustaría entender esto y he buscado por internet a ver si encontraba algo parecido pero no lo he podido localizar.
Espero haber dejado clara la pregunta, perdonar pero a estas horas estoy ya un poco fuera jaja
Un saludo y gracias!