Hola
Creo que la altura que piden calcular es respecto al lado1 que seria el primer argumento de la función.
Es importante tener esto en cuenta ya que un triangulo tiene 3 alturas, una respeto a cada lado (Se puede pensar como que rotas el triangulo y ahora tienes otra base)
Aquí esta mi solución:
export function solution(lado1, lado2, lado3) {
let a = lado1;
let b = lado2;
let c = lado3;
// Si no es escaleno, no continuamos
if (a == b || b == c || c == a) {
return false;
}
// Si es escaleno, calculamos primero su area
let s = (a + b + c) / 2;
let area = Math.sqrt(s * (s - a) * (s - b) * (s - c));
// Ahora usamos que A = bh/2, por lo que h = 2A/b
let altura_a = Math.floor(2 * area / a);
let altura_b = Math.floor(2 * area / b);
let altura_c = Math.floor(2 * area / c);
// IMPTE: No se especifica cual de las alturas se quiere, tras probar el codigo conclui que se busca la altura respecto a 'a' como base
return altura_a;
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?