To wyzwanie przynosi ci prawdziwa (i tragiczna) inspiracja. Ostatnio wiersz liczb na mojej klawiaturze był nieco sporadyczny. Klucze 1-9działają czasami - ale innym razem nie dają rezultatu. Jako zapalony programista jest to okropne! (Widzisz ten wykrzyknik? W ten sposób wiesz, że teraz działają.) Nie tylko często potrzebuję samych liczb, ale symboli!@#$%^&*(są również całkowicie nieskuteczne w połowie czasu! Jako programista języka C, zamiast oderwać się od mojego napiętego harmonogramu szkicowania kodu w celu naprawy laptopa, byłem bardziej zainteresowany obejściem problemu. W ciągu ostatnich kilku tygodni powoli wszystkie literały liczbowe w moim kodzie zostały zamienione na szesnastkowe, aby nie musiałem szukać liczb do skopiowania i wklejenia. Jednak niektóre cyfry nie są łatwe do wpisania bez klawiszy 1-9. Na przykład liczby 1nie można zapisać tak po prostu w systemie szesnastkowym, i postanowiłem zastąpić 1s w moim kodzie 0xF - 0xE. Jedyne klucze, które są dotknięte są 1-9, więc utrzymanie pełnego wykorzystania symboli, takich jak +, -i /. Nie mogę jednak używać mnożenia ani nawiasów, ponieważ*i (często są zepsute. To prowadzi do twojego wyzwania.
Wkład
Liczba całkowita, ndo stdin lub odpowiednika twojego języka. Jeśli chcesz, liczba całkowita może być poprzedzona lub uzupełniona nową linią lub innym znakiem spacji. Alternatywnie możesz otrzymać dane wejściowe za pomocą argumentu wiersza poleceń.
Twój program powinien poprawnie reagować na negatywne dane wejściowe i być w stanie obsłużyć co najmniej 32-bitowe liczby całkowite ze znakiem.
Wydajność
Twój program powinien wypisać, w pewnej możliwej do zaobserwowania formie, najkrótszy (zapisany spacjami) możliwy sposób zapisania liczby njako sumy, różnicy lub podziału jednej lub więcej wartości szesnastkowych. Jest więcej niż jeden sposób rozwiązania tego problemu i nie ma wymogu, aby faworyzować jakiekolwiek wyjście o równej długości w stosunku do jakiegokolwiek innego.
Dane wyjściowe powinny mieć postać, w A % A % A...której Anastępuje wartość szesnastkowa, 0xzawierająca tylko cyfry A-F a-f, i %jeden z symboli -+/. Opiszmy /dzielenie całkowite, a nie zmiennoprzecinkowe.
(Należy pamiętać, że wyniki powinny wynikać z noceny najpierw podziałów, od lewej do prawej, a następnie dodawania i odejmowania, od lewej do prawej, jak to jest w konwencji).
Przypadki testowe
Wejście wyjście
10xF - 0xE(lub0xF-0xElub0xB-0xAlub0xd - 0xclub0xF/0xF)150xF2550xFF300xF + 0xF
Punktacja i zasady
To jest golf golfowy. Twój wstępny wynik to liczba bajtów w pliku źródłowym.
NIE możesz używać żadnych cyfr 1-9w swoim źródle.
MOŻESZ używać symboli !@#$%^&*(w swoim źródle, ale każdy z nich ma karę +20 do twojego wyniku.
Twój program może zostać zastąpiony przez funkcję, która bierze npod uwagę argument, o ile funkcja ta generuje jakąś formę danych wyjściowych czytelnych dla człowieka. Wartość zwracana przez twoją funkcję NIE jest liczona jako wynik.
Standardowe luki są niedozwolone.
Najniższy wynik wygrywa! Powodzenia!
Czy zrobiłem coś głupiego pod względem formatowania / zadawania pytań / przejrzystości? Daj mi znać! To jest moje pierwsze zgłoszenie do tej strony!