Давненько у нас задачек интересных не было.
Итак, дана java. И даны два числа (double). Необходимо написать функцию которая пользуясь только арифметическими действиями (без логических операций, без ветвлений и так далее) вернет 0.0 если a < b, и 1.0 если a>=b. Можно считать что a>0 и b>0.
То есть написать функцию double compare(double a, double b);
В функции не должно быть приведений типов, нельзя использовать тернарный оператор (?
и так далее. Все что там должно быть - return с выражением.
Какие именно арифметические операторы/функции можно использовать:
+ Additive operator (also used
for String concatenation)
- Subtraction operator
* Multiplication operator
/ Division operator
% Remainder operator
double pow(double a, double b) // Returns the value of the first argument raised to the power of the second argument.
Замечу для прожженых сишников - в java оператор взятия остатка от деления (%) РАЗРЕШЕН для плавающей точки (double/float). Это не привычно, но это так.
И нет, в решении не обязательно использовать ВСЕ операторы/функции разрешенные. Эта задача не синтетическая, это реальная задача с производства (тамошний интерпретатор формул умеет ровно это, потому и такой набор операций).
И да, задача имеет решение.