Asdzendo
02/16/2020, 5:30 PM**
* Простая
*
* Треугольник задан длинами своих сторон a, b, c.
* Проверить, является ли данный треугольник остроугольным (вернуть 0),
* прямоугольным (вернуть 1) или тупоугольным (вернуть 2).
* Если такой треугольник не существует, вернуть -1.
*/
//Ок
fun triangleKind(a: Double, b: Double, c: Double): Int =
when {
a > b + c || b > a + c || c > a + b -> -1 // это не треугольник
(c * c < a * a + b * b) && (a * a < b * b + c * c) && (b * b < a * a + c * c) -> 0 // остро
c * c > a * a + b * b || a * a > b * b + c * c || b * b > a * a + c * c -> 2 // тупо
else -> 1 // прямо
}
fun triangleKind1(a: Double, b: Double, c: Double): Int =
if ((a > b + c) || (b > a + c) || (c > a + b)) -1
else if ((c * c < a * a + b * b) && (a * a < b * b + c * c) && (b * b < a * a + c * c)) 0
else if ((c * c > a * a + b * b) || (a * a > b * b + c * c) || (b * b > a * a + c * c)) 2
else 1
mglukhikh
02/17/2020, 7:19 AMmaxOf
, самую короткую minOf
и третью сторону. Сильно короче не станет, но троекратное повторение одинаковых условий уберётся.