24 game

Реализуйте функцию, которая принимает в качестве аргумента строку из четырех цифр: каждая цифра от 1 ──► 9 (включительно) с разрешенными повторениями и возвращает арифметическое выражение, которое оценивается с номером 24. Если такого решения не существует, не существует никакого решения ».

Правила:

Допускаются только следующие операторы / функции: умножение, деление, сложение, вычитание. Отдел должен использовать с плавающей точкой или рациональную арифметику и т. Д. Для сохранения остатков. Формирование нескольких цифр из предоставленных цифр не разрешено. (Таким образом, ответ 12 + 12 при наличии 1, 2, 2 и 1 неверен). Порядок цифр, когда они указаны, не обязательно сохраняется.

Пример ввода:

solve24("4878"); solve24("1234"); solve24("6789"); solve24("1127");

Пример выходов (строк):

(7-8/8)*4 3*1*4*2 (6*8)/(9-7) (1+7)*(2+1)

Implement a function that takes a string of four digits as its argument, with each digit from 1 to 9 (inclusive) with repetitions allowed, and returns an arithmetic expression that evaluates to the number 24. If no such solution exists, return "no solution exists".

Rules:

  • Only the following operators/functions are allowed: multiplication, division, addition, subtraction.
  • Division should use floating point or rational arithmetic, etc, to preserve remainders.
  • Forming multiple digit numbers from the supplied digits is disallowed. (So an answer of 12+12 when given 1, 2, 2, and 1 is wrong).
  • The order of the digits when given does not have to be preserved.

Example inputExample output
solve24("4878");(7-8/8)*4
solve24("1234");3_1_4*2
solve24("6789");(6*8)/(9-7)
solve24("1127");(1+7)*(2+1)