Na mojej lekcji ekonomii wraz z przyjaciółmi lubimy wymyślać sposoby zmiany kolejności cyfr w formacie daty (w formacie MM / DD / RR), aby utworzyć prawidłowe równanie matematyczne. W większości przypadków oprócz konkatenacji możemy używać dodawania, odejmowania, mnożenia, dzielenia, nawiasów i potęgowania.
Twój program powinien zrobić coś podobnego. Program powinien zaimportować bieżącą datę i wstawić operatory, aby wydrukować wyrażenie zgodnie z następującymi regułami.
- Cyfry MUSZĄ być używane w kolejności. Zmiana kolejności cyfr jest niedozwolona.
- Wynikowe wyrażenie musi być matematycznie dokładne.
- Dozwolone jest dodawanie, odejmowanie, mnożenie, dzielenie, potęgowanie i stosowanie nawiasów. Podobnie jest łączenie cyfr. Jednak nie wszystkie operacje są konieczne. Nie można użyć znaku odejmowania, aby cyfra była ujemna (jak
-1+1+11=10
11 listopada 2010 r.). - Program musi zostać uruchomiony w ciągu 60 sekund na standardowej maszynie.
Na przykład to wyzwanie zostało napisane 10 listopada 2015 r. Program zinterpretuje to jako 11/10/15. Przykładowy wynik to (1+1)/10=1/5
.
Bonusy
Możesz pomnożyć liczbę bajtów w kodzie przez 0,9 dla każdego z poniższych programów obsługiwanych przez Twój program.
- Program drukuje wszystkie możliwe wyrażenia, które można utworzyć, oddzielone znakami nowej linii. Pomnóż przez dodatkowe 0,95, jeśli wyrażenia są wymienione w porządku rosnącym dodatkowych symboli.
- Program działa również dla dat MM / DD / RRRR, drukując możliwość z pierwszymi dwiema cyframi roku oprócz możliwości bez. Jeśli premia ta zostanie połączona z pierwszą premią, wszystkie możliwości z pierwszymi dwiema cyframi roku muszą zostać wydrukowane.
- Program wyświetla również równanie gdy istnieje wiele równości (na przykład, w dniu 11 listopada 2011 roku,
1=1=1=1=1=1
zostanie wydrukowana, oprócz możliwości, takich jak1*1=1=1=1=1
,1*1*1=1=1=1
i1*1*1*1=1=1
. Wszystkie takie przypadki muszą być wydrukowane na pierwszej premii mają być osiągnięte. - Program obsługuje konwersję do podstaw między 2 a 16. Zauważ, że jeśli podstawa nie jest 10, wszystkie liczby w wyrażeniu muszą być zapisane w tej samej bazie i
(Base b)
muszą być zapisane po wyrażeniu (b
odpowiednio zamienione).
To jest kod golfowy, więc obowiązują standardowe zasady. Najkrótszy kod w bajtach wygrywa.