(Zainspirowany 95 postaciami ASCII ... 95 cytatów filmowych )
Wyzwanie
Biorąc pod uwagę dane wejściowe n
, nth
wypisz liczbę Fibonacciego . Można użyć 0
lub 1
indeksowanie, państwo, które w swojej składania proszę. Proste, tak? Problem polega na tym, że musisz wziąć zestaw znaków z poprzedniej poprzedniej odpowiedzi, usunąć z niego dwa znaki i dodać osobny znak. Oddzielny znak musi
- nie mogą pochodzić z zestawu znaków poprzedniej poprzedniej odpowiedzi
- być z zestawu (drukowalny ASCII, spacja, nowa linia, tabulator poziomy)
a zatem twój całkowity rozmiar zestawu znaków będzie dokładnie o jeden mniejszy niż zestaw bezpośredniej poprzedniej odpowiedzi.
Pierwsza odpowiedź
Pierwsze zgłoszenie musi zawierać podzbiór (wszystkie ASCII do wydruku, spacja, znak nowej linii i tabulator poziomy) z usuniętymi dwoma znakami. Każde późniejsze przesłanie musi ograniczyć odpowiedzi do tego oryginalnego formatu tylko ASCII (co oznacza, że nie można dodać znaku Unicode ani rozszerzonego znaku ASCII ... przepraszam Jelly, APL i in.).
Przykłady i wyjaśnienia
- Załóżmy, że pierwsza odpowiedź jest w języku C i zawiera (prawie wszystkie ASCII do druku, nową linię
%
i tabulację poziomą) i pomija^
znaki z zestawu znaków. Drugi uległość, następnie należy usunąć dwie postacie z poprzedniego (prawie wszystkie druku ASCII, znak nowej linii i poziomym TAB) zestawu znaków i dodać albo%
albo^
. Być może jest to jednoskładnikowa odpowiedź PowerShell, która pomija nową linię. I tak dalej. - Jeśli poprzednia odpowiedź zawierała
print(){}!*+
zestaw znaków (12 znaków), przesłanie może miećprint(){}!
(10 znaków) i jeden dodatkowy znak,print(){!+
(10 znaków) i jeden dodatkowy znak itp. - Jeśli poprzednia odpowiedź miała
print(){}!*+
swój zestaw znaków (12 znaków) , odtąd nie można miećprint()
i&
(8 znaków) jako zestawu znaków12 - 8 > 1
. - Jeśli poprzednia odpowiedź miała
print(){}!*+
swój zestaw znaków (12 znaków), przesłanie nie mogłoby miećprint(){}!
(10 znaków) plus dodatkowego znaku*
jako zestawu znaków, ponieważ mimo że to 11 znaków,*
jest ono zawarte w poprzednim zestawie. - Nie każda postać w twoim zestawie postaci musi zrobić coś pożytecznego dla twojego poddania się. Na przykład, jeśli poprzednią odpowiedzią był
print(){}!*+
zestaw znaków, a Twój język ma wbudowaną!
funkcję obliczającą sekwencję Fibonacciego i#
rozpoczynającą komentarz, przesłanie może być!#print(){}
i nadal jest poprawne. - Możesz użyć tej samej postaci z zestawu postaci wiele razy. Załóżmy na przykład, że twój zestaw znaków był
!*#_
, twoja odpowiedź może być!!!**#**#_!!
i byłaby do zaakceptowania. - Oprócz swojego kodu (a także wyjaśnienia, które są miłe!) Proszę również wyraźnie wymienić swój zestaw znaków, aby ułatwić przyszłe przesyłanie.
Zwycięski
Zwycięzcą konkursu będzie osoba, która opublikowała drugie najnowsze zgłoszenie (tj. Nie osoba, która opublikowała ostatnią, ponieważ zerwała łańcuch).
Ostateczne zasady
Obowiązują zwykłe reguły łączenia odpowiedzi :
- Ta sama osoba nie może publikować dwa razy z rzędu
- Jeśli odpowiedź zostanie uznana za niepoprawną (na przykład użyła niedozwolonego znaku lub nie oblicza się poprawnie), należy ją usunąć (i wszelkie kolejne odpowiedzi, które z niej wynikają)
- Dwóch użytkowników, którzy opublikują „w tym samym czasie”, będzie musiało zezwolić na wcześniejsze zgłoszenie
- Tego samego języka nie można opublikować dwa razy z rzędu. Do celów tej reguły języki tej samej rodziny (np. Python 2 i Python 3) liczą się jako „ten sam język”.
Ostateczne rzeczy:
- Ten post działa najlepiej, jeśli sortujesz według „Najstarsze”, aby odpowiedzi były w odpowiedniej kolejności.
- Kyle Gullion skonstruował tutaj sprawdzanie kodu w Pythonie , aby sprawdzić, czy brakuje lub używasz niewłaściwych znaków.