Twoim zadaniem jest wygenerowanie n-tego ciągu sekwencji RATS, gdzie n jest wejściem. Sekwencja RATS jest również znana jako sekwencja odwrotnego dodawania, a następnie sortowania. Sekwencję tę można również znaleźć tutaj: http://oeis.org/A004000 .
przypadki testowe:
0 > 1
1 > 2
2 > 4
3 > 8
4 > 16
5 > 77
6 > 145
7 > 668
Na przykład wynik dla 5 wynosi 77, ponieważ 16 + 61 = 77. Następnie 77 jest sortowany.
Wygrywa najkrótsze zgłoszenie. To jest moje pierwsze wyzwanie, więc mam nadzieję, że nie jest to duplikat ani nic takiego.
code-golf
sequence
arithmetic
justaprogrammer
źródło
źródło
Odpowiedzi:
MATL , 11
12bajtówDane wejściowe to ciąg (z pojedynczymi cudzysłowami) reprezentujący liczbę całkowitą w jedności . Dane wejściowe są dozwolone przez wyzwanie, a unary jest poprawnym formatem .
Wypróbuj online!
Wyjaśnienie
źródło
05AB1E , 6 bajtów
Kod:
Wyjaśnienie:
Działa to również z programem 0-bajtowym .
źródło
05AB1E
, najpierw eliminując wiodące zero, a następnie pomijając1
, as1E==E
. Wtedy dostajesz tylko5ABE
-2 bajty.CJam, 15 bajtów
Sprawdź to tutaj.
Wyjaśnienie
źródło
Pyth,
171312 bajtówWypróbuj go w tłumaczu online .
źródło
Python 2, 72
Funkcja rekurencyjna wykorzystuje skrót Python 2
__repr__
, który się zepsuje, gdy funkcja osiągnie bardzo duże wartości (L
zostanie dodana do ciągu liczby), nie jestem pewien ze specyfikacji, czy jest miejsce, w którym możemy się zatrzymać , ale jeśli nie zmienia się nastr()
dodanie tylko 6 bajtów, ale wtedy staje się nieco krótszy, aby wyświetlać jako ciąg, przy 75 bajtach:1 bajt zapisany dzięki trichoplax w tej wersji
źródło
or
drugim blokiem kodu?JavaScript ES6, 70 bajtów
Zapisano 1 bajt dzięki @ user81655
westchnienie JavaScript jest naprawdę pełne. Znaczna część (> 50%) kodu to po prostu wielkość ciągu + funkcja tablicy + złączenie + rzut na int. Próbowałem zredukować, ewaluować i wszelkiego rodzaju rzeczy, ale wydaje się to być najkrótsze.
Wypróbuj online (działają wszystkie przeglądarki)
źródło
f=n=>n?[...+[...b=f(n-1)].reverse().join``+b+''].sort().join``:'1'
jeśli dozwolone jest zwracanie ciąguBrachylog , 19 bajtów
Wyjaśnienie
źródło
Haskell, 67 bajtów
Przykład użycia:
(g"1"!!) 7
->"668"
.Jest to bezpośrednia implementacja definicji: zaczynając od
"1"
, wielokrotnie dołączaj wynik odwrotnego dodawania-sortowania bieżącego elementu. Główna funkcja(g"1"!!)
wybiera teni
element.źródło
Julia, 77 bajtów
Jest to funkcja lambda, która przyjmuje liczbę całkowitą i zwraca liczbę całkowitą. Aby go wywołać, przypisz go do zmiennej.
Nie golfowany:
źródło
Galaretka,
1312 bajtówJestem pewien, że można to prawdopodobnie zagrać w golfa, ponieważ jest to moja pierwsza odpowiedź w Jelly / w milczącym języku.
EDYCJA: Zaoszczędził 1 bajt, dzięki Dennis
źródło
Java 1.8, 251 bajtów
Rozszerzony
źródło
interface
R zamiastclass
R, który jest o 4 bajty krótszy?Poważnie, 17 bajtów
Wypróbuj online!
Wyjaśnienie:
źródło
Lua,
179156 bajtówNie widzę, jak mógłbym bardziej zagrać w golfa, ale jestem pewien, że jest na to sposób.Dzięki @LeakyNun poświęciłem trochę czasu, aby zejść na dół i zagrać w golfa we właściwy sposób, być może nadal mogę wygrać trochę bajtów, stosując inne podejście.Bez golfa i wyjaśnienia
źródło
a=a<1 and 1or
na przykład).Brachylog 2, 11 bajtów, wyzwanie dotyczące postdatacji języka
Wypróbuj online!
Wyjaśnienie
Nie jestem całkiem pewien, co to robi z cyframi zerowymi, ale pytanie nie określa żadnej konkretnej obsługi i prawdopodobnie nie pojawiają się w sekwencji.
źródło
ES6, 79 bajtów
82 bajty bez
eval
:Wszystkie te konwersje są bolesne.
@ edc65 Właściwie zaoszczędziłem 4 bajty, przechodząc z
map
doreduce
tego czasu ... bez wątpienia znowu udowodnisz, że się mylę.źródło
for
jest krótszy:n=>eval("for(r=1;n--)r=+[...+[...r+''].reverse().join``+r+''].sort().join``")
n=0
, nawet po naprawieniu błędów składniowych.Python 2, 91 bajtów
Wprowadź jako liczbę całkowitą, wynik zostanie wydrukowany na ekranie.
To może być o wiele krótsze z pewną magią rekurencyjną, ale nie mogę jeszcze owinąć wokół niej głowy. Zobaczę później i mam nadzieję, że poprawię ten.
źródło
Python 2, 83 bajty
źródło
Perl 6 , 40 bajtów
(Jeśli chcesz, aby zwrócił Int wstaw
+
wcześniej[~]
)Stosowanie:
źródło
Mathematica 10.3,
6661 bajtówCałkiem proste.
źródło
PHP, 102 bajtów
Wersja online
PHP, 95 bajtów
n <= 39
źródło
Java ,
171167163160 bajtówWypróbuj online!
Nie najdłuższy wpis! \ o /
źródło
Python 2 , 70 bajtów
Wypróbuj online!
źródło
Aksjomat, 146 bajtów
test i wyniki [sekwencja RATS]
źródło
Tcl , 91 bajtów
Wypróbuj online!
źródło