Сумма квадратов двух максимальных чисел
Дали задачу на собеседовании, написать в функциональном стиле на скале функцию, которая принимает три целых числа и возвращает для них сумму квадратов двух максимальных чисел. Корявенько получилось придумать такое:
def twoMaxSquareSum(a: Int, b: Int, c: Int): Int =
{
def min(): Int =
{
if (a < b && a < c) {
return a;
} else if (b < c) {
return b;
} else return c;
}
def square(x:Int):Int=
{
return x*x;
}
return List(a,b,c).map (square(_)).foldLeft(0)(_ + _)-square(min)
}
Добавление: А какой вариант вы бы безоговорочно приняли на собеседовании как оптимальный?