Zainspirowany niefortunnym sortowaniem liczb-cyfr-bez-użycia-macierzy , ale pomyślałem, że to lepszy kod do gry w golfa niż pytanie SO.
Biorąc pod uwagę dodatnią liczbę całkowitą, posortuj cyfry w tej liczbie całkowitej.
Najniższy wynik wygrywa!
- Zacznij od 0 punktów.
- Dodaj jeden punkt na znak.
- Dodaj 20 punktów za każdą używaną tablicę.
- Dodaj 10 punktów za każdy ciąg wieloznakowy w kodzie. (Z wyjątkiem początkowego wejścia, o ile jest ono konwertowane na liczbę całkowitą bez żadnych innych operacji na nim wykonanych).
- Dodaj 32 punkty, jeśli maksymalna liczba cyfr obsługiwanych przez Twój program jest ograniczona przez Twój program (w przeciwieństwie do maszyny).
- Odejmij 10 punktów, jeśli Twój kod może zmienić kierunek sortowania, podając inny argument (cokolwiek chcesz, ale na przykład 0 dla sortowania malejącego i 1 dla rosnąco).
Każdy język jest inny, ale chodzi o to, by unikać wszelkiego rodzaju hackerów z cyframi wielokrotnymi.
Przykład:
Wejście : 52146729
Wyjście : 97654221 lub 12245679
Uwagi:
- Użyj wbudowanych funkcji sortowania dostępnych w języku programowania, ale jeśli ta funkcja sortowania obejmuje łańcuchy lub tablice, weź karę!
- Możesz napisać rozwiązanie jako funkcję, która pobiera liczbę całkowitą bezpośrednio, lub jako program, który pobiera argument z argv, pliku lub strumienia i konwertuje go na liczbę całkowitą. Tak długo, jak natychmiast zamienisz go na liczbę całkowitą i odrzucisz oryginalne wejście char * bez wykonywania dalszych operacji na nim, nie będzie obowiązywać kara.
- Kary mają zastosowanie nie tylko do literałów łańcuchowych w tekście programu, ale także do dowolnej części funkcji programu, która prawdopodobnie wprowadza lub wyprowadza ciąg znaków lub jest iterowalna. Na przykład JavaScript
String.prototype.split
ma co najmniej jeden ciąg jako input (this
) i tablicę jako wynik, więc +30 za użycie tego. - Starałem się, aby te reguły kierowały zasadą projektowania algorytmów, a nie początkowymi / końcowymi operacjami wejścia / wyjścia (stąd uwaga 2). Nie sądzę, że kara powinna obowiązywać,
int(input())
nawet jeśliinput
podpis mówi, że zwraca ciąg znaków, o ile to wyrażenie jest początkowym punktem wejścia programu. Podobnie, jeśli końcowym wyjściem programu jestprint(x)
ix
musi być ciąg, kara nie dotyczy operacji odlewania ciągu z ostatniego rowu. To powiedziawszy, ja nigdy nie powiedziałem, że to musi być program, albo skąd I / O musiało pochodzić lub iść. Funkcja, która przyjmujeint
i zwraca anint
, służyłaby i nie cierpiałaby z powodu tych dwuznaczności.
code-challenge
sorting
kojiro
źródło
źródło
" "
liczy się jako ciąg wieloznakowy ? Pojedyncza postać nie byłaby uważana za „multi” ...Odpowiedzi:
GolfScript,
114(4 + 10 (ciąg znaków) - 10 (opcja odwrotna))
Wejście na STDIN.
Format wejściowy jest następujący:
1
sortować normalnie,-1
odwracać. 4 znaki - 10 dla opcji odwrotnej = wynik -6.Dane wejściowe są technicznie ciągiem, więc nie jestem pewien, czy to się liczy +10. Interpretuję regułę jako „ciąg zadeklarowany w twoim programie” (ponieważ mówi „w kodzie”).
Stara odpowiedź (wynik 11):
źródło
~
natychmiast konwertuje na liczbę całkowitą. Ale potem jest konwertowany z powrotem na ciąg`
. Czy konwersja na ciąg znaków się liczy? Ponieważ czasami łańcuch może nie być wieloznakowy (1 cyfra)chr
), jest w porządku.Haskell 106
przykład:
Odpowiedź, która nie unika pytania.
Poproszono o wyjaśnienie, tutaj nie jest golfem. Jest to bardzo nieefektywny rodzaj bąbelków.
W Haskell istnieją krótsze odpowiedzi, odpowiadające niektórym innym, np .:
... zdobywa 52 + 20 = 72 lub więcej punktów 45 + 20 = 65:
... ale duch pytania - brak tablic, ciągów znaków lub znaków - jest bardziej interesujący.
źródło
Integer.MAX_VALUE
-it zajmujeint
. Mój i niektóre inne akceptują dane wejściowe dowolnej wielkości - typ wejściowys
jestInteger
równoważnyBigDecimal
w java. Jednak nie o to mi chodziło, myślałem, że karanie odpowiedzi „sortuje” tylko cyfry jednocyfrowe.C + x86, 636
Wiem, że to nie wygra, ale czułem się tak nienaturalnie i pokręcony, że musiałem się tym podzielić. Brak tablic lub łańcuchów (o ile nie policzysz argumentów wejściowych). Liczba cyfr jest ograniczona przez zakres 32 bitów.
Oto małe wyjaśnienie tego, co zrobiłem:
Myślałem, że zrobię to bez użycia tablic lub ciągów, a potem przyszła mi do głowy rekurencja, ale oczywiście przy rekursji nie byłbym w stanie zamienić wartości z innych wywołań rekurencyjnych ... i wtedy zdałem sobie sprawę, że był sposób. Łącząc mój program C z funkcją asemblacji, mogłem wskoczyć na stos i zwrócić wskaźnik do wskaźnika podstawowego żądanego wywołania, właśnie to robi funkcja „recursionStackAt”. Oczywiście recursionStackAt jest bardzo brzydką funkcją, jej wynik zależy nie tylko od stanu wejścia lub programu, ale od samego programu wywołującego. Zauważ, że to spowodowało, że zmieniłem indeksy z 0 na 1 w oparciu.
Bez zbędnych ceregieli, oto kod:
I oczywiście kod zestawu x86 (AT&T sintax, btw) dla funkcji recursionStackAt:
Kilka przykładów na wyjściu: (1 oznacza zwiększenie, a 0 zmniejszenie)
Oto zaciemniona wersja (która jest nieczytelna, ale działa dobrze):
http://pastebin.com/XkYt9DLy (kod C) http://pastebin.com/h0S0dfeU (kod x86)
Więc jeśli LibreOffice nie kłamie, mój zaciemniony kod składa się z 646 znaków (bez spacji, czy powinienem je policzyć?) I przy spełnieniu wszystkich pozostałych warunków dostaję -10 za zwiększenie / zmniejszenie wyboru.
Aha, i aby to skompilować, powinieneś zrobić (w systemach uniksopodobnych)
Pamiętaj, że flaga -m32 jest dostępna tylko na komputerze 64-bitowym. Potrzebne są również biblioteki 32-bitowe, aby je skompilować.
źródło
Bash (echo) (0 + 7 + 0 + 0 + 32-10) = 29
Sortuj:
Stosowanie:
Użyj „-e”, aby posortować w odwrotnej kolejności:
EDYCJA: zmieniono „cat” na „echo”, aby faktycznie działało. EDYCJA 2: Dodano „$ *” i umieściłem w skrypcie „sorta”
źródło
-e
może być użyty jako argument dla wyjścia odwrotnego.Python3
Moje funkcje skryptu:
Brak tablic
Bez zobowiązań
Złożoność to O (n): Użyłem countingsort (zmodyfikowany przeze mnie, aby nie używać tablic, ale liczby pierwsze do liczenia wystąpień)
Bez ograniczeń wielkości
Znaki:
260234źródło
P
można to napisaćlambda l:((((29-6*l%2,19-2*l%2)[l<9],13-2*l%2)[l<7],2*l-1)[l<5],2)[l==1]
, goląc całkiem sporo znaków. Być może trochę to popsułem, ale pomysł polega na użyciu zagnieżdżonej wersji oldskulowej trójki Pythona (zanim Python miał trójkę)(false_result, true_result)[boolean]
.Bash + coreutils, 14 (24 znaki - 10 dla rewersu)
Wydaje mi się, że może to trochę naginać zasady, ale oto nadchodzi piątek ...
Zakładam, że korzystanie ze standardowych bibliotek jest dozwolone. Moja interpretacja standardowej biblioteki
bash
tocoreutils
:Dane wejściowe ze standardowego wejścia. W użyciu:
źródło
bash
ideą liczb całkowitych (deklaruj -i). Edytowane.tr
nie lubi twojej składni, co kosztowałoby cię jedną postać w tych systemach.) W każdym razie, argumentowałbym, że nadal są to wszystkie operacje na łańcuchach.declare -i
nie czyni nazwy liczbą całkowitą, po prostu sprawia, że powłoka używa kontekstu arytmetycznego na RHS wyrażeń przypisania.C - 64 znaki, 64 punkty
Możesz się zastanawiać, jak to działa bez żadnych nagłówków. Prosty, kompiluj z:
Bez golfa:
Postanowiłem również włączyć sortowanie znaków, tylko dlatego, że mogłem.
Przebiegi testowe:
źródło
main(int a,char**b){b++;qsort(*b,strlen(*b),1,strcmp);puts(*b);}
który i tak jest krótszy.c(*a
, moja wersja gcc nalegała, że musimy to zrobićc(char*a
.funkcja c (łuk little-endian),
131108 znakówŻadne wyzwanie sortowania nie jest kompletne bez odpowiedzi sleepsort . Ten powrót potrwa do 10 sekund, ale działa, i myślę, że jest w pełni zgodny ze specyfikacją. Ta funkcja przyjmuje pojedynczy parametr int i zwraca liczbę int z posortowanymi cyframi dziesiętnymi:
dodano nowe linie i wcięcia dla czytelności
Zadzwoń w następujący sposób:
źródło
?:
zamiastif-else
.fork()?c++:(sleep(d),exit(d));
(,)
.Java: 262 punkty
Tak, tak, wiem, to beznadziejne, ale nadal…
Analiza (oznaczenie):
StringBuffer
(użyłem go, ponieważ jest krótszy niżStringBuilder
) (wynik = 262 + 10 = 272)Stosowanie:
Podczas próby skompilowania
G.java
pliku w wierszu polecenia generuje wiele problemów (błędów). Więc rozwiązanie?Następnie ta klasa powinna zostać wywołana przez
main()
metodę z dowolnej innej klasy (lub nawet samej klasy). Umieszczam to w innej klasie, więc nie dodam tego do mojej liczby postaci. Skompiluj drugą klasę w podobny sposób (bez użyciacmd
). Terazmain()
metoda w drugiej klasie powinna wyglądać mniej więcej tak:Pomijając niepotrzebne spacje, komentarze i podziały wierszy, to kolejne 93 znaki. Nie dodam go do mojej postaci, ponieważ jest to tylko demonstracja za pośrednictwem konsoli.
Wynik:
ZERO tj.
0
Jest brane pod uwagę. Załóżmy, że klasa zewnętrzna jestHelper.java
i została pomyślnie skompilowana, kilka przykładów za pośrednictwem konsoli to:Po zmianie na
0
np. Malejąco ...UWAGI:
G.java
. To jest klasa podstawowa .Integer.MAX_VALUE
ponieważ jest to maksymalny rozmiar, jaki może pomieścić dowolna tablica (w Javie).źródło
TeX / LaTeX (332)
Jeśli rzeczywisty kod zostanie umieszczony w pakiecie
s
, główny plik LaTeX wygląda ładnie i łatwo. Liczba jest podana tylko jako matematyka. Jeśli liczba jest ujemna, kolejność sortowania jest odwrócona. Kod pakietus
może być również używany z prostym TeXem, przykład poniżej.Pakiet
s
(jedna linia, końce linii nie są potrzebne):Wynik:
Wynik: beznadziejny
Używając zwykłego TeXa z
etex
lubpdftex
, plik można zredukować do:<contents of s.sty>\rm\shipout\hbox{$<number>$}\bye
Bajty: 318 bajtów (
s.sty
) + 24 bajty dla reszty bez liczbyTablice nie są używane: 0
Nie widzę ciągów wieloznakowych: 0
Liczba nie jest ograniczona przez algorytm. Największy numer TeX to 2 31 - 1 = 2147483647. W przykładzie użyto 66-cyfrowej liczby, znacznie większej: 0
Jeśli podano minus, kolejność sortowania jest przywracana do malejącej: −10
0 + 318 + 24 + 0 + 0-10 = 332
Algorytm:
Cyfry stają się aktywnymi postaciami w trybie matematycznym. Każda cyfra zapamiętuje i gromadzi każde użycie w makrze. Po trybie matematycznym makra są wyprowadzane z cyframi w porządku rosnącym.
Zmiana kierunku odbywa się za pomocą tekstu od prawej do lewej, funkcji e-TeX.
Odmolona wersja kodu w
s.sty
Reprodukcja
Istnieje kilka internetowych kompilatorów LaTeX, ich listę można znaleźć tutaj . Próbowałem pierwszego elementu na liście, serwletu LaTeX na sciencesoft.at . Można go używać bez podpisywania, a także tworzyć trwałe adresy URL: źródło i wynik jako obraz .
źródło
C - 65
Bystry obserwator zauważy, że ten algorytm sortowania działa w czasie O (n) od liczby cyfr w
n
.Pragmatyczny obserwator zauważy, że ten algorytm sortowania działa w czasie proporcjonalnym do zakresu podpisanych liczb całkowitych na platformie, że mutuje stan globalny, który należy ponownie zainicjować między seriami, i że wiele innych poświęceń zostało dokonanych na korzyść zwięzłości.
Wersja bez golfa nie jest dokładnie równoważna, ale lepiej przekazuje faktyczny algorytm.
Oto uprząż testowa dla funkcji:
źródło
Haskell - 96
96 znaków, bez tablic, bez ciągów, bez limitu liczb całkowitych, nie można odwrócić
Przykłady:
Ten jest sortowany przez wstawianie, wykonywany bezpośrednio na samych liczbach całkowitych. Jest to podobne do innego wpisu Haskell, który jest typu bąbelkowego, chociaż przysięgam, że nad nim pracowałem, zanim go zobaczyłem.
Krótki przewodnik:
d
dzieli liczbę na jednostki i dziesiątki, tzn .:d 135
jest parą(13,5)
a%x
posortowane jest wstawianie cyfrya
do liczbyx
a&x
sortujex
, wstawiając cyfrę jednosteka
i powtarzając wynik i resztęs x
sortuje x, rozpoczynając&
rekurencję od 0 ix
Sztuka polega na tym, że drugi argument
%
i&
nie jestx
bezpośrednio, alex
używa divModd
źródło
Python3.3 61 punktów
Ten program przyjmuje dane wejściowe jako ciąg, który liczy się jako ciąg, ponieważ nie jest on natychmiast zmieniany na liczbę całkowitą. +10
Ciąg jest sortowany w tablicy +10
Ta tablica jest łączona w ciąg +10
Uwaga:
''
używanych do łączenia zawartości tablicy nie jest multi ciąg znaków, więc +10 nie jest dodawany do wyniku.Program składa się z 31 znaków. +31
31 + 10 + 10 + 10 = 61 punktów
źródło
print(int(''.join(sorted(input()))))
, ale rzutowanie na liczbę całkowitą tylko dodawało punkty i nie zbliżało kodu do reguł. Podejrzewam, że tak naprawdę nie byłem wierny wyzwaniu. Ale twierdzi, że dane wejściowe mogą być łańcuchem, a dane wyjściowe mogą być łańcuchem (w przypadku instrukcji print) i nie mówi nic o:]J, 10 znaków (+ 1 ciąg) wynik = 20
Stosowanie:
Działa dla wszystkich liczb 32-bitowych.
Wyjaśnienie:
/:~
sortuj&.
według":
formatu. Moja poprzednia wersja również używała tablicy, ale są one kosztowne, więc teraz muszę po prostu użyć łańcucha i posortować znaki alfabetycznie.":
konwertuje liczbę wprowadzoną na ciąg i/:~
sortuje cyfry w porządku rosnącym. Ponieważ sortowanie odbywa się w formacie „pod”, po zakończeniu sortowania ciąg znaków jest konwertowany z powrotem na liczbę. Dodanie możliwości cofania prawdopodobnie kosztowałoby więcej niż oszczędza, więc nie zawracałem sobie głowy.Można argumentować, że ponieważ J, podobnie jak APL i K, jest językiem opartym na tablicach, pojedyncze dane wejściowe to tablica 1 elementu, ale zdecydowałem się nie brać tak surowego widoku przy obliczaniu mojego wyniku.
Limit 32-bitowy jest narzucony przez J, a nie przez mój program. Każda wyższa i J przełącza liczby na notację naukową. Pytanie, czy w tym przypadku ma zastosowanie kara 32 punktowa, nie jest jasne, ale nawet jeśli obowiązują obie poprzednie kary (nie sądzę, że powinny), wynik wzrasta do 72 i nadal wygodnie pokonuje zdecydowaną większość pozostałych odpowiedzi
źródło
Python 2.7: 174
Działa poprzez utworzenie słownika odwzorowującego wszystkie 10 cyfr na 0. Następnie iteruje się na całej długości liczby (
log10(i)
), wyodrębniając każdą cyfrę ((i / (10 ** c)) % 10
) i zwiększając licznik tej cyfry w słowniku. Wreszcie tworzy ciąg utworzony przez iterację wszystkich 10 cyfr i dla każdej cyfry, dając jedno wystąpienie cyfry jako ciąg.Mógłbym zmienić ostatni wiersz, do
print"".join(d[n]*str(n)for n in xrange(10))
którego byłoby 16 znaków mniej, ale używałbym ciągów wieloznakowych.źródło
i=int(input())
może być tak samo,i=input()
jakinput()
automatycznie sprawdza liczbę.C (do C90)
lub C ++,7866 punktówWywoływana jest funkcja sortowania liczby całkowitej
s
.Punktacja:
int
) (+0)Stara wersja (78 punktów, działa również z C ++ i nowszymi wersjami C)
źródło
C # - 179
Nie grał w golfa
Test
Normalna:
Wywrócony:
Punkty: (Mam nadzieję, że dobrze zrozumiałem system punktowy - nie krępuj się poprawiać)
C # z LINQPAD - 123
Test
Normalna:
Wywrócony:
Zwrotnica:
źródło
Java 1469
Rozwiązanie bez ciągów i macierzy w Javie. 1437 znaków + 32, ponieważ jako dane wejściowe zajmuje tylko Long.MAX_VALUE. Używając Double mogę zamiast tego przejść do ponad 300 cyfr, ale byłoby to zbyt żmudne do wdrożenia. Wszystko większe niż to wymagałoby BigInteger i AFAIK, który korzysta z tablic wewnętrznie. Jeśli użyjesz mniej niż 19 cyfr na wejściu, dane wyjściowe będą miały zera na początku. Ujemne wejście da wszystkie zera, a cokolwiek innego niż liczba spowoduje wyjątek.
Do tego rodzaju, którego użyłem najłatwiejszego, jaki mogłem wymyślić, więc jest dość nieefektywny. (powinno być O (n * n))
Wiem, że tak naprawdę nie ma porównania z rozwiązaniami w innych językach, ale wydaje mi się, że przynajmniej jest to najkrótsza możliwa do uzyskania w Javie. (jeśli ktoś wie, jak to zrobić jeszcze krócej, możesz go edytować / komentować)
źródło
AWK - 101
Plik „x”:
Bieg:
Jedyną zastosowaną tablicą jest ARGV i to nie pomaga w sortowaniu, jest to tylko dostęp do parametrów wiersza poleceń, a te wartości są w zmiennych innych niż tablica, gdzie są rzeczywiście potrzebne do obliczeń. Myślę, że to się nie liczy na to rozwiązanie. Poniższe obliczenia nie uwzględniają tablicy ARGV:
111 (znaki) - 10 (można cofać)
źródło
W pytaniu nie widzę nic na temat funkcji sortowania, więc ...
JavaScript
5696JavaScript
69109 (odwracalny)Można nieco pograć w golfa za pomocą funkcji strzałek EcmaScript 6 :
ES6
5090ES6
63103 (dwustronny) (73-10)źródło
prompt
zwraca ciąg znaków (który nie jest od razu konwertowany na liczbę całkowitą): +10;split
zwraca tablicę: +20;sort
wykonuje sortowanie na miejscu (więc nadal jest to ta sama tablica);join
zwraca nowy ciąg, +10. Razem: 96.SED 67 znaków (ocena 67 lub 107)
Używa to sortowania bąbelkowego dla zwięzłości. Wynik wyniósłby 107, gdyby każdy wzorzec wyrażenia regularnego i zamiana liczyły się jako ciąg (tj. 67 + (10 * 4))
Liczba obsługiwanych cyfr ograniczona przez pamięć (i prawdopodobnie cierpliwość)
źródło
Funkcja lambda Python (odwracalna), 69
n
(wejście) i''.join(...)
(+20)sorted(...)
(+20)d
(-10)Funkcja lambda Python (nieodwracalna), 67
EDYCJA: Dane wejściowe powinny być ciągiem. Rozważam karę za bezpośrednie użycie tego ciągu.
źródło
raw_input([prompt]) -> string
, podobnie jaksorted(raw_input())
+10. Równieżsorted -> new sorted list
+20. Następnie,S.join -> string
więc +10 ponownie. Notacja wycinka również pociąga za sobą ciągi znaków, więc +10 (cokolwiek innego, co obsługuje zapis wycinka, byłoby prawdopodobnie +20). Obliczam więc odpowiednio 73 i 108.print
zamiastreturn
ing?lambda
print
jest krótszy i nie wymaga pakowania. Nie wiedziałem, że pozwolisz na funkcje lambda. Coś z twarzy, kiedy to czytam. Czy to teraz poprawne?''.join(sorted(str(n)))
Czy mógłbyś mi powiedzieć, dlaczego nie będzie to uważane za odpowiedź? Jestem trochę nowyCommon Lisp - 126
Wersja niefolifikowana (stylistycznie i leksykalnie, ale funkcjonalnie identyczna):
Cyfry liczby ujemnej są traktowane jako mające wartość ujemną, a cyfry są sortowane od najmniej znaczącej do pierwszej (tj. Little-endian). Przykłady:
W wersji golfowej jest 136 znaków, w tym spacja. Nie używa ciągów ani tablic, i obsługuje liczby całkowite o dowolnej dokładności, w tym liczby całkowite ujemne. Sortowanie jest parametryzowane w predykacie binarnym, który określa całkowite uporządkowanie liczb całkowitych, w
[-9, 9]
tym między innymi<
i>
:Daje to wynik 126.
źródło
JavaScript 416/185
Bez tablic, bez łańcuchów, bez ograniczeń arbitralnych długości ...
Ale sortowanie w górę / w dół zajęłoby więcej niż 10 znaków ^^ Ale pomysł liczenia cyfr i drukowania ich był interesujący - może ktoś może użyć tego pomysłu w GolfScript i wygrać nagrodę ;-)
Ten sam kod krótszy, przy użyciu eval: (ale można by to uznać za użycie ciągów ...)
źródło
C (222)
Zwrotnica:
-10 (sortuje do tyłu, jeśli liczba (argv [1]) jest ujemna)
= 222 punkty
Flagi potrzebne do pozbycia się 1000 ostrzeżeń kompilatora:
gcc -Wno-implicit-function-declaration -Wno-return-type -Wno-implicit-int -Wno-char-subscripts -o count2 counta2.c
„Lepszy” czytelny:
Nieco golfisty:
źródło
"%""i"
zamiast"%i"
? Kompilują się do tego samego, więc marnujesz tylko dwa znaki.Czy istnieje powód, dla którego nie widzę już tego rozwiązania?
Rubin
Nie jestem pewien, jak to zdobyć. Podział wygenerowałby tablicę, ale poza tym nie jestem pewien. 38 znaków + 2x20 dla tablic? A może powinien zawierać wszystkie tablice, które mogą tworzyć wewnętrznie?
źródło
VBScript - 76 (96?)
66 znaków + 10 za użycie łańcucha
n
(Nie wiem, czy użycie
replace
funkcji istring
funkcji zwracającej n ilości znaku x jest liczone jako dodatkowy ciąg).Liczy ilość określonej cyfry, porównując długość oryginalnego łańcucha z tym samym łańcuchem z określoną cyfrą zamienioną. Następnie dołącza tę liczbę cyfr do n.
źródło
Python 3 sleepsort (168)
Bez absolutnie żadnej listy ani pętli, tylko generatory.
prawdopodobnie można by to poprawić.
źródło
Rakieta 97
97 punktów (87 +20 za dwa ciągi, -10 za sortowanie, brak tablic)
Używa list znaków, więc musisz nadać mu funkcję porównywania znaków, taką jak
char<?
lubchar>?
. Wydaje mi się, że to również przechodzi jako niezamieszkane, ponieważ nie ma wiele do roboty niż dodawanie spacji i zwiększanie nazw zmiennych. Moja stara wersja jest chyba bardziej honorowa :)Stara wersja bez ciągów:
110 punktów (120 bajtów (utf-8) - 10 za umożliwienie zmiany kolejności sortowania. Nie używa ciągów ani tablic)
Nie golfowany:
Przetestowałem to na 100 000. liczbie Fibonacciego:
I to samo w odwrotnej kolejności:
źródło