Wygeneruj n- ty numer Narayana-Zidek-Capell, podając n . Wygrywa najmniej bajtów.
f (1) = 1, f (n) jest sumą warunków poprzedniego piętra (n / 2) Narayana-Zidek-Capell.
Przypadki testowe:
f(1)=1
f(9)=42
f(14)=1308
f(15)=2605
f(23)=664299
Wygeneruj n- ty numer Narayana-Zidek-Capell, podając n . Wygrywa najmniej bajtów.
f (1) = 1, f (n) jest sumą warunków poprzedniego piętra (n / 2) Narayana-Zidek-Capell.
Przypadki testowe:
f(1)=1
f(9)=42
f(14)=1308
f(15)=2605
f(23)=664299
Odpowiedzi:
Galaretka,
1110 bajtówWypróbuj online!
Bierze
n
jako argument i wypisuje wynik.Wyjaśnienie
źródło
Rubinowy,
3432 bajtyWykorzystuje to wzór ze strony OEIS dla liczb Narayana-Zidek-Cappell .
Edycja: Pozbyłem się nawiasów, stosując pierwszeństwo operatora dzięki feersum i Neilowi.
źródło
x%2
?x%2*
przynajmniej umieścisz .x<2?
... dzięki czemu jest o wiele jaśniejsza dzięki!Python 2,
48423836 bajtówAlgorytm pobrany ze strony OEIS.
n<3
można zmienić nan<4
bez efektu. Zwracan
liczbę th, gdzien
jest dodatnią liczbą całkowitą.Wypróbuj online
źródło
05AB1E, 16 bajtów
Iteracyjne rozwiązanie, ponieważ 05AB1E nie ma funkcji.
Wypróbuj online
źródło
C, 38
Tłumaczenie algorytmu OEIS. Tutaj jest po prostu za mało kodu C.
źródło
n<3?:(...)
działaPython 3, 67 bajtów
Funkcja, która pobiera dane wejściowe poprzez argument i wypisuje do STDOUT. Jest to bezpośrednie wdrożenie definicji.
Jak to działa
Wypróbuj na Ideone
źródło
Pyth, 12 bajtów
Wypróbuj online. Zestaw testowy.
Definiuje funkcję,
y(n)
która zwracan
liczbę Narayana-Zidek-Capell.źródło
Mathematica, 38 bajtów
Funkcja anonimowa. Pobiera 𝑛 jako dane wejściowe i zwraca 𝑓 (𝑛) jako dane wyjściowe. Oparty na rozwiązaniu Ruby.
źródło
Haskell, 34 bajty
Przykład użycia:
f 14
->1308
.Bezpośrednie wdrożenie definicji.
źródło
Java, 63 bajtów
źródło
Idź, 63 bajty
Prawie bezpośredni port od odpowiedzi C.
źródło
PHP, 81 bajtów
Jest to pełny program bez rekurencji. Funkcję rekurencyjną można zdefiniować w 52 bajtach (być może można to pokonać), ale to po prostu dość nudny port odpowiedzi sherlock9 (i błąd, jeśli poprosisz o f (100) lub więcej), więc umieszczam to dłuższa i bardziej interesująca wersja
Powoduje wiele (O [n]) powiadomień, ale to w porządku.
źródło
O(n)
uwagi? Co?R, 55 bajtów
Zmiana
10
wfor
pętli ix[9]
dostać cokolwiek indeksu użytkownik chce.źródło
f=function(n)ifelse(n<4,1,2*f(n-1)-n%%2*f(floor(n/2)))
JavaScript,
5452Na podstawie odpowiedzi C.
parseInt
zamiastMath.floor
źródło
Klon,
4644 bajtówStosowanie:
źródło
R, 63 bajty
a=0
jest dodawany domyślnie, ponieważ oszczędza mi dwa nawiasy klamrowe. Funkcja rekurencyjnie wywołuje się w razie potrzeby.źródło