24 игра
Реализуйте функцию, которая принимает в качестве аргумента строку из четырех цифр: каждая цифра от 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 input | Example 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) |