Задача.
Даны действительные числа [latex]x, y, z[/latex]. Получить [latex]\max\left\{x,y,z \right\}[/latex].
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class Test { static function max(x:Float, y: Float) { return if (x > y) x else y; } static function main() { var x: Float = 10; var y: Float = 5; var z: Float = 3; trace(max(x, max(y, z))); } } |
Решение.
- Как известно, для любых чисел [latex] x,y \in \mathbb{R} [/latex] [latex] \max\left\{x,y \right\} = x,[/latex] если [latex] x \geq y[/latex], и [latex] \max\left\{x,y \right\} = y,[/latex] в противном случае.
- Нетрудно доказать, что [latex] \forall x,y,z \in \mathbb{R} [/latex] [latex] \max\left\{x,y,z \right\}=\max\left\{\max\left\{x,y \right\},z \right\}[/latex]
- С учётом замечания 1 проверим неравенство [latex] x > y[/latex] и если оно выполняется, перенаправим поток на вывод [latex] \max\left\{x,z \right\}[/latex]. В противном случае, на вывод [latex] \max\left\{y,z \right\}[/latex]
Ссылка на решение задачи.
Cсылка на условие задачи.