В конечном итоге в вашем коде много очень длинных, скучных условий:
if flag == 1:
while have != needed:
if type == 7:
Они могут быть преобразованы в их гораздо более привлекательных <3
аналогов:
if abs(flag - 1) + 2 <3:
while 3 - abs(have - needed) <3:
if 2 + abs(type - 7) <3:
задача
Ваша задача взять условное и сделать это с точки зрения <3
. Единственный интервал, который имеет значение, заключается в том, что между <
и 3
.
Conditionals будет два выражения разделенным либо ==
, !=
, >
, <
, >=
или <=
.
Выражения будут содержать только сложение, вычитание, унарное отрицание ( -something
), где есть одна +
или -
перед каждой переменной или числом (кроме первой, в которой ничего нет или -
перед ней).
Числа будут [0-9]+
, а переменные будут [a-z]+
. Если ответ необходимо использовать |x|
(Абсолютное значение x
), используйте abs()
функцию. Можно предположить, что все переменные являются целыми числами, а все числовые константы на входе <1000.
Вывод не обязательно должен быть в самой простой форме. Он должен быть условным, как указано выше, это означает, что это только два выражения, разделенных одним условным знаком, но он также может использовать abs
функцию, заключающую в себе допустимое выражение, и затем он действует как переменная в терминах достоверности.
Если на входе нет вывода для какого-либо значения переменной, выведите условие, которое всегда ложно, но все еще в терминах <3
.
Часть проблемы состоит в том, чтобы выяснить, как это сделать, но вот шаги для have != needed
вышеупомянутого:
have != needed
have - needed != 0
abs(have - needed) > 0
-abs(have - needed) < 0
3 - abs(have - needed) <3
счет
Это код-гольф, поэтому выигрывает самый короткий действительный код в байтах.
Контрольные примеры
(Обратите внимание, что эти выводы не единственные, но я попытался их упростить.)
flag == 1
abs(flag - 1) + 2 <3
have != needed
3 - abs(have - needed) <3
type == 7
2 + abs(type - 7) <3
x > y
3 - x + y <3
x + 5 < -y
x + 8 + y <3
x + 6 <= y
x + 8 - y <3
-x >= y + 3
x + y + 5 <3
x < x
3 <3
# Unsimplified; both would be valid outputs.
x - x + 3 <3