Twoim wyzwaniem jest napisanie 5 różnych pełnych programów dla 5 następujących zadań:
Wydrukować
Hello, World!
Biorąc pod uwagę wejście z STDIN, wyślij silnię, możesz założyć, że wejście jest liczbą całkowitą> = 0
Biorąc pod uwagę liczbę całkowitą N, oblicz sumę liczb pierwszych <= N
Biorąc pod uwagę parametr STDIN, wypisz litery użyte w danych wejściowych. Na przykład: dane wejściowe
Hello world
wymagają wyjściahelowrd
. Zauważ, że dane wyjściowe są pisane małymi literami. Możesz założyć, że dane wejściowe są zawsze alfabetyczne z białymi spacjami, białe spacje są ignorowane.Wyjmij następujący diament dokładnie tak:
* *** ***** ******* ***** *** *
Wszystkie te wyzwania są prawdopodobnie bardzo łatwe, ale jest pewien haczyk. Każda litera, której używasz, nie może być ponownie użyta w innych programach. Nie jest to zabronione, ale da ci karę w wysokości +8 bajtów . Na przykład, jeśli jest to twój program do pierwszego zadania:
print("Hello, World!");
Wtedy nie można użyć następujących liter (w wielkie lub małe litery) postaci: p
, r
, i
, n
, t
, h
, e
, l
, o
, w
, d
w innych programach. Jeśli musisz ich użyć, możesz „kupić” każdą literę za 8 bajtów. Jeśli więc chcesz ponownie użyć litery l
w innym programie, otrzymasz karę w wysokości 8 bajtów. Po zapłaceniu kary możesz w tym programie dowolnie korzystać z każdej litery. Inne postacie nie mają znaczenia. Ponadto wszystkie 5 programów powinno być w tym samym języku.
To jest golf golfowy , więc wygrywa najmniej bajtów!
źródło
Odpowiedzi:
CJam, 73 bajty
Każda linia to pełny program. Wypróbuj je online: 1 | 2 | 3 | 4 | 5
Mapa liter
Jeśli chcesz (a każdy z twoich programów mieści się w jednej linii), możesz użyć tego programu CJam, aby utworzyć mapę listów dla własnego zgłoszenia.
źródło
Pyth, 90 bajtów
Pierwsze podejscie...
Zadanie 1: 20 bajtów
Zadanie 2, 3 bajty
Zadanie 3, 9 bajtów
Zadanie 4, 6 + 8 = 14 bajtów
Zadanie 5, 44 bajty
źródło
osascript, 759 bajtów
Wiedziałem, że to będzie dużo, kiedy zacznę. z oo
Zadanie 1: 15 bajtów
Wiedziałem, że od tego momentu będzie źle.
Zadanie 2: 64 + 8 * 4 = 96 bajtów
O rany.
Zadanie 3: 170 + 8 * 13 = 274 bajtów
Dennis ≠ outgolfed.
Zadanie 4: 225 + 8 * 13 = 329
...
Zadanie 5: 45 bajtów
Więc tak. Od początku wiedziałem, że przegram. Ale to było interesujące, chciałbym wiedzieć, czy można to zrobić za pomocą mniejszej liczby postaci. Mapa znaków (dostarczona przez Dennisa):
Liczba znaków powyżej jest nieznacznie mniejsza - nowe wiersze sprawiły, że wystąpiły problemy, ponieważ nowe wiersze nie zostały policzone.
UWAGA: Powodem nieużywania rzeczy takich jak
a's characters
i tym podobnych jest to, że'
znak musi być użyty podczas wykonywania z wiersza poleceń osascript. Gdybym użył'
, musiałbym użyć\'
czegoś podobnego, co by mi wcale nie pomogło. Ponadto rozpoznaje tylko"
jako przechwytywacze łańcuchów, więc też trochę mnie tam wkręciłem. Ale to była zabawa.źródło
NARS2000 APL, 144 bajty (85 znaków)
Zadanie 1, 21 bajtów (17 znaków)
Zadanie 2, 10 bajtów (4 znaki)
Zadanie 3, 22 bajty (11 znaków)
Zadanie 4, 53 bajty (29 znaków)
Zadanie 5, 38 bajtów (24 znaki)
źródło
⎕
do drukowania poza REPL.Galaretka , 46 bajtów (niekonkurencyjna)
Wypróbuj online! (Skopiuj / wklej każdy fragment)
Najwyraźniej ograniczenie nie ograniczało gry w golfa :) Poproszę tylko sugestie dotyczące ostatniego.
źródło