Pertimbangkan urutan bilangan asli yang N muncul sebagai substring dalam N ^ 2. A018834
Keluarkan n
elemen ke-5 dari urutan ini.
Aturan
Program hanya mengambil n
input dan output hanya satu nomor - N
.
Urutannya bisa 0-diindeks atau 1-diindeks.
Sequence: 1 5 6 10 25 50 60 76 100 250 376 500 600 625 760 ...
Squares: 1 25 36 100 625 2500 3600 5776 10000 62500 141376 250000 360000 390625 577600 ...
Ini adalah kode-golf sehingga kode terpendek menang.
Jawaban:
05AB1E , 6 byte
1-diindeks
Cobalah online!
Penjelasan
sumber
µ
perintah hanya ... Aku berharap aku punya itu.Nth
nomor yang memenuhi syarat tertentu.å
hasil benar maka kita memiliki arusN
di bagian atas tumpukan (penghitung kenaikan dan penambahanN
), tetapi jika tidak kita melanjutkan (kenaikanN
). Mungkin menggunakan sesuatu selain "N
" karena itu adalah hasil akhir di badan pertanyaan: pPerl 6 ,
3331 byte-2 byte terima kasih kepada nwellnhof
Cobalah online!
Penjelasan:
sumber
JavaScript (ES6), 43 byte
Cobalah online!
Versi non-rekursif, 47 byte
Cobalah online!
sumber
n=23
hanya?MathGolf , 8 byte (berfungsi untuk input apa pun dalam teori, tetapi hanya untuk
n<10
dalam praktik)Cobalah online!
Alternatif (bekerja untuk
n<49
praktik dan teori)Satu-satunya perbedaan adalah bahwa alih-alih membuat daftar dengan
10^(input)
nilai, saya membuat daftar dengan10^6
item. Ini membutuhkan waktu untuk dijalankan, sehingga Anda dapat menukar byte pertama dengan literal 1 byte lainnya untuk mengujinya.Penjelasan
Alasan mengapa solusi ini tidak menangani input besar adalah karena saya perhatikan bahwa urutannya tumbuh kurang dari eksponensial, tetapi lebih dari polinomial mana pun. Itu sebabnya saya menggunakan
10**n
operator (saya ingin menggunakan2**n
tetapi gagal untuk input 1). Itu berarti bahwa saya membuat array yang sangat besar bahkan untuk input kecil, hanya untuk menyaring sebagian besar dari itu, dan kemudian mengambil salah satu elemen pertama. Ini sangat boros, tetapi saya tidak dapat menemukan cara lain untuk melakukannya tanpa menambah jumlah byte.sumber
Gangguan Umum, 95 byte
Cobalah online!
sumber
Bersih , 83 byte
Cobalah online!
sumber
Jelly , 6 byte
1-diindeks.
Cobalah online!
Bagaimana?
Menemukan urutan pertama
n
sebagai daftar dan kemudian menghasilkan ekorN
,.Jika
0
dianggap sebagai bilangan alami, kita bisa menggunakan program lengkap 1-diindeksẇ²$#Ṫ
untuk 5.sumber
Japt,
1211 byteCobalah
Cobalah
sumber
Ruby , 45 byte
Cobalah online!
sumber
Java 8,
666563 byte-1 byte terima kasih kepada @Shaggy .
-2 byte terima kasih kepada @Arnauld .
1-diindeks.
Try it online.
Explanation:
sumber
Clojure, 81 bytes
Try it online! (Unfortunately, TIO doesn't seem to support Clojure's standard string library)
Jika Clojure memiliki impor sintaks yang lebih pendek, atau memiliki
includes?
metode di perpustakaan inti, ini sebenarnya bisa agak kompetitif.clojure.string/includes?
sendiri lebih panjang dari beberapa jawaban di sini: /Karena tautan TIO rusak, inilah uji coba. Angka di sebelah kiri adalah indeks (
n
), dan hasilnya (N
) di sebelah kanan:Ini harus dapat mendukung nilai apa pun dari
n
; asalkan Anda bersedia menunggu sampai selesai (menemukan bilangan bulat ke 50 hingga ke 100 dalam urutan memakan waktu 15 menit). Clojure mendukung aritmetika bilangan bulat besar yang sewenang-wenang, jadi begitu angka mulai menjadi besar, ia mulai menggunakanBigInt
s.sumber
Arang , 25 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Diindeks 0. Penjelasan:
Masukan
n
.Mulai
N
dari 1. (Atau, ini bisa mulai menghitung di0
mana akan membuat input 1-diindeks.)Ulangi sampai kami menemukan
n
angka dalam urutan.Penambahan
N
.Jika
N*N
berisiN
, maka ...... penurunan
n
.Cetak
N
.Upaya saya bermain golf lebih lanjut dihalangi oleh Charcoal a) tidak memiliki
if..then
kecuali pada akhir blok (yang biaya 2 byte) b) tidak memilikiContains
operator (mengubah outputFind
atauCount
menjadi boolean yang saya dapat kurangi darin
biaya lagi 2 byte).sumber
Edit (respons terhadap komentar): Python 2, 76 byte
Ingin mencoba metode non rekursif. (Baru bermain golf, kiat apa pun akan bagus!)
Terima kasih, baik BMO dan Vedant Kandoi!
sumber
print(f(13))
in the code. Alsowhile 1:
,if c==1:return n
,c==1 can be c<2
`
adalah redundan dan yang sesudahnyac<2:
juga, selanjutnya Anda dapat mencampur tab dan spasi untuk indentasi (seperti yang ditunjukkan di sini ): 69 byte Btw. tidak perlu menyimpan versi lama Anda (itu ada dalam riwayat edit untuk mereka yang tertarik) dan mengapa tidak menautkan ke TIO (atau serupa) / menggunakan templat dari sana?Haskell, 60 byte
Cobalah online!
sumber
Python 2 ,
4743 byte-4 byte terima kasih kepada Dennis (menambahkan 1 ke panggilan rekursif alih-alih kembali
n-1
)Cobalah online!
Penjelasan / Tidak Diikat
Fungsi rekursif mengambil dua argumenc , n ; n is counts up 1,2,3… and everytime n in n2 it decrements c . The recursion ends as soon as c=0 :
sumber
APL (Dyalog Extended),
3130 bytesTry it online!
0-indexed.
sumber
(⍕⍺)⍷⍕
→⍺⍷⍥⍕
Perl 5
-p
, 33 bytesTry it online!
sumber
Lua,
13712379 bytes-thanks @Jo King for 44 bytes
Try it online!
sumber
false/true
can be0>1
/0<1
, brackets aren't necessary forif
s andwhile
s, you can remove most whitespace after numbers (even newlines).Tcl, 82 bytes
Try it online!
sumber
proc S n {while {[incr j [regexp [incr i] [expr $i**2]]]-$n} {};return $i}
Tidy, 24 bytes
Try it online!
Returns a lazy list which, when called like a function, returns the
n
th element in the series.Explanation
sumber