Zadanie jest więc proste, biorąc pod uwagę tablicę liczb i wyników, musisz znaleźć operacje, których należy użyć na liczbach z tablicy, aby uzyskać żądany wynik.
Uprośćmy to na początek i zezwalajmy tylko na podstawowe operacje, takie jak: dodawanie, odejmowanie, mnożenie i dzielenie.
Przykład:
Input : [5,5,5,5,5] 100
Output : 5*5*5-5*5
Aby dać przewagę takim językom jak Java, żądanie polega na implementacji funkcji, a nie całego programu, a wynik może zostać zwrócony poprzez parametr lub wydruk na konsolę.
Kod jest oceniany na podstawie ilości bajtów, a ponieważ jest wyzwaniem dla kodu golfowego, wygrywa najniższy wynik.
Kolejnym wymaganiem jest to, że można uzyskać dodatkowe -10 punktów, jeśli tablica zawiera tylko cyfry, obsługuje rozwiązania, w których można konstruować liczby na podstawie kolejnych cyfr. To znaczy
Input : [1,2,3,4,5] 0
Output : 12-3-4-5
Należy pamiętać, że pod warunkiem, że wyniki są proponowanymi wynikami, niektóre przypadki mogą mieć więcej niż jedno rozwiązanie. Od Ciebie zależy, czy dostarczysz jedno lub więcej rozwiązań dla danego zadania.
EDYCJA: Wynik musi być poprawny z matematycznego punktu widzenia, stąd podział jest podziałem racjonalnym, a nie liczbą całkowitą, a pierwszeństwo operacji jest takie samo jak w matematyce klasycznej (najpierw mnożenie i dzielenie, a następnie dodawanie i odejmowanie).
*
i/
ma pierwszeństwo przed+
i-
? Dwa przykłady są ze sobą sprzeczne.