Menghasilkan n th Narayana-Zidek-Capell jumlah diberi masukan n . Bytes paling sedikit menang.
f (1) = 1, f (n) adalah jumlah dari lantai sebelumnya (n / 2) istilah Narayana-Zidek-Capell.
Kasus uji:
f(1)=1
f(9)=42
f(14)=1308
f(15)=2605
f(23)=664299
Jawaban:
Jelly,
1110 byteCobalah online!
Dibawa
n
sebagai argumen dan mencetak hasilnya.Penjelasan
sumber
Ruby,
3432 byteIni menggunakan rumus dari halaman OEIS untuk nomor Narayana-Zidek-Cappell .
Sunting: Singkirkan tanda kurung menggunakan prioritas operator dengan terima kasih kepada feersum dan Neil.
sumber
x%2
?x%2*
setidaknya menaruh .x<2?
... ini membuatnya lebih jelas, terima kasih!Python 2,
48423836 byteAlgoritma diambil dari halaman OEIS.
n<3
dapat diubah menjadin<4
tanpa efek. Mengembalikan angkan
th, di manan
bilangan bulat positif.Cobalah online
sumber
05AB1E, 16 byte
Solusi berulang karena 05AB1E tidak memiliki fungsi.
Cobalah online
sumber
C, 38
Terjemahan dari algoritma OEIS. Tidak ada cukup kode C di sekitar sini!
sumber
n<3?:(...)
kerjanya?Python 3, 67 byte
Fungsi yang mengambil input melalui argumen dan mencetak ke STDOUT. Ini adalah implementasi langsung dari definisi tersebut.
Bagaimana itu bekerja
Cobalah di Ideone
sumber
Pyth, 12 byte
Cobalah online. Suite uji.
Menentukan fungsi
y(n)
yang mengembalikan nomorn
Narayana-Zidek-Capell.sumber
Mathematica, 38 byte
Fungsi anonim. Mengambil 𝑛 sebagai input dan mengembalikan 𝑓 (𝑛) sebagai output. Didasarkan pada solusi Ruby.
sumber
Haskell, 34 byte
Contoh penggunaan:
f 14
->1308
.Implementasi langsung dari definisi.
sumber
Java, 63 Bytes
sumber
Pergi, 63 byte
Cukup banyak port langsung dari jawaban C.
sumber
PHP, 81 byte
Ini adalah program lengkap tanpa rekursi. Fungsi rekursif dapat didefinisikan dalam 52 byte (mungkin bisa mengalahkan itu) tapi itu hanya port yang cukup membosankan dari jawaban sherlock9 (dan kesalahan jika Anda meminta f (100) atau lebih) jadi saya memasang ini versi yang lebih panjang dan lebih menarik
Menyebabkan banyak (O [n]) pemberitahuan tetapi tidak apa-apa.
sumber
O(n)
pemberitahuan? Hah?R, 55 byte
Perubahan
10
dalamfor
lingkaran danx[9]
untuk mendapatkan mana indeks pengguna ingin.sumber
f=function(n)ifelse(n<4,1,2*f(n-1)-n%%2*f(floor(n/2)))
JavaScript,
5452Berdasarkan jawaban C.
parseInt
bukanMath.floor
sumber
Maple,
4644 bytePemakaian:
sumber
R, 63 byte
a=0
ditambahkan sebagai default karena itu menyelamatkan saya dua kurung keriting. Fungsi secara rekursif menyebut dirinya sesuai kebutuhan.sumber