Таким образом, задача проста, учитывая массив чисел и результат, вам нужно найти, какие операции нужно использовать над числами из массива, чтобы получить запрошенный результат.
Давайте сделаем это простым для запуска и разрешим только основные операции, такие как: сложение, вычитание, умножение и деление.
Пример:
Input : [5,5,5,5,5] 100
Output : 5*5*5-5*5
Чтобы дать какое-то преимущество таким языкам, как Java, запрос состоит в реализации функции, а не всей программы, и результат можно вернуть через параметр или вывести на консоль.
Код оценивается на основе количества байтов, и, поскольку это вызов кода гольфа, выигрывает самый низкий балл.
Еще одно требование: Вы можете получить дополнительные -10 баллов, если массив содержит только цифры, поддерживая решения, в которых вы могли бы строить числа из следующих цифр. Т.е.
Input : [1,2,3,4,5] 0
Output : 12-3-4-5
Обратите внимание, что при условии, что выходные данные являются предлагаемыми выходными данными, в некоторых случаях может быть несколько решений. Вам решать, предоставите ли вы одно или несколько решений для данной задачи.
РЕДАКТИРОВАТЬ: Результат должен быть действительным с математической точки зрения, следовательно, деление это рациональное деление, а не целое число, и приоритет операции такой же, как в классической математике (сначала умножение и деление, а затем сложение и вычитание).
*
и/
имеет приоритет над+
и-
? Ваши два примера противоречат друг другу.