Отож завдання просте, задавши масив чисел і результат, вам потрібно знайти, які операції потрібно використовувати на числах з масиву, щоб отримати запитуваний результат.
Давайте зробимо його простим для початку та дозвольмо лише основні операції, такі як: додавання, віднімання, множення та ділення.
Приклад:
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
Зауважте, що за умови запропонованих результатів виводи, деякі випадки можуть мати більше одного рішення. Ви вирішуєте, чи надасте одне або декілька рішень для даної задачі.
EDIT: Результат повинен бути дійсним з математичної точки зору, отже, ділення є раціональним поділом, а не цілим числом, а пріоритет операції такий же, як у класичній математиці (спочатку множення та ділення, потім додавання та віднімання).
*
і/
має перевагу над+
і-
? Ваші два приклади суперечать один одному.