Pertimbangkan sebuah segitiga di mana N baris th (1-diindeks) adalah array pertama N kekuatan bilangan bulat positif dari N . Inilah beberapa baris pertama:
N | Segi tiga 1 | 1 2 | 2 4 3 | 3 9 27 4 | 4 16 64 256 5 | 5 25 125 625 3125 ...
Sekarang jika kita menggabungkan kekuatan-kekuatan itu menjadi satu urutan, kita mendapatkan OEIS A075363 :
1, 2, 4, 3, 9, 27, 4, 16, 64, 256, 5, 25, 125, 625, 3125, 6, 36, 216, 1296, 7776, 46656 ...
Diberikan integer N , tugas Anda adalah mengembalikan suku ke- N dari urutan ini. Anda dapat memilih pengindeksan 0 atau 1.
Uji kasus
1-diindeks:
N -> Output 1 -> 1 2 -> 2 3 -> 4 5 -> 9 10 -> 256 12 -> 25 15 -> 3125
Diindeks 0:
N -> Output 0 -> 1 1 -> 2 2 -> 4 4 -> 9 9 -> 256 11 -> 25 14 -> 3125
Perhatikan bahwa celah ini dilarang secara default. Ini adalah kode-golf , sehingga pengajuan valid terpendek dalam setiap bahasa menang!
Jawaban:
Python 3 , 39 byte
1-diindeks
Cobalah online!
sumber
Sekam , 7 byte
Cobalah online!
1-diindeks
Penjelasan:
sumber
Bahasa Wolfram (Mathematica) , 32 byte
Cobalah online!
Berkisar dengan kekuatan rentang ...
sumber
Range@Range@3
kembali{{1}, {1, 2}, {1, 2, 3}}
?! Sial, daftar-threading Mathematica gila.R , 40 byte
-2 byte porting jawaban Halvard Hummel
Cobalah online!
R , (jawaban asli) 42 byte
Cobalah online!
1-diindeks.
sumber
APL (Dyalog) ,
151310 byte3 byte disimpan berkat @ Adám
Cobalah online!
Bagaimana?
⍳¨∘⍳
- buat rentang untuk setiap angka dalam rentang input⍳*
- naikkan setiap angka dalam kisaran input ke kekuatan yang sesuai∊
- Ratakan⊢⊃
- pilih elemen ke-nsumber
f
(dengan demikianf←
adalah 2 byte lebih, yang tidak dihitung di sini), dan ada uji coba yang mengembalikan hasil dari1
ke10
.Jelly , 7 byte
Cobalah online!
-1 terima kasih kepada Tn . Xcoder .
1-diindeks.
sumber
"
, solusi saya sendiri adalah 7 byte:*R$€F⁸ị
"
, tapi tetap saja. Itulah yang Anda dapatkan karena harus belajar sejarah: /Haskell ,
3028 byteDisimpan 2 byte berkat xnor.
Cobalah online!
Diindeks 0
sumber
[n^i|n<-[1..],i<-[1..n]]
.>>=
formulir ...MATL , 9 byte
Pengindeksan adalah berbasis 1. Cobalah online! Atau verifikasi semua kasus uji .
Penjelasan
Pertimbangkan input
5
sebagai contoh.sumber
APL (Dyalog) ,
1412 byteCobalah online!
Menggunakan pengindeksan 1
Disimpan 2 byte dengan
↑,/ → ∊
, diambil dari jawaban GrahamPerhatikan bahwa di tautan tes, kode memerlukan tambahan
f←
, tetapi ini tidak dihitung sesuai aturan kami.sumber
∘
dengan sangat pintar⍨
.{⍵⌷∊*∘⍳⍨¨⍳⍵}
→⊢⌷∘∊((*∘⍳)⍨¨⍳)
→⊢⌷∘∊(⍳(*∘⍳)¨⍳)
→⊢⌷∘∊⍳*∘⍳¨⍳
⊢
adalah fungsi diam-diam apa⍵
yang ke dfn. The∘
antara⌷
dan∊
diperlukan karena∊
disebut monadically, sehingga indeks terdaftar . Dan kami beralihf⍨⍳
ke⍳ f ⍳
untuk menghindari pemanggilan f (*∘⍳¨
) secara monadik (kapanpun⍨
dan¨
berdekatan, mereka dapat bertukar posisi).Pyth , 8 byte
Coba di sini.
-1 terima kasih Steven H ..
Diindeks 0.
sumber
@s^RSdSh
untuk golf byte.05AB1E , 9 byte
Cobalah online!
Penjelasan
1-diindeks.
Solusi alternatif atas daftar, bukan loop
sumber
Perl 6 , 29 byte
Menguji
Diperluas:
sumber
Ruby , 34 byte
Cobalah online!
sumber
JavaScript , 30 byte
-1 byte terima kasih kepada Nahuel Fouilleul
Cobalah online!
sumber
f=(x,n=1)=>x>n?f(x-n,n+1):n**x
Python 2 , 57 byte
Cobalah online! (0-diindeks.)
Alternatif panjang versi 0 byte diindeks 0 .
sumber
Jelly ,
1512 byteMungkintidak optimal.-3 Berkat golf Erik the Outgolfer .
Cobalah online!
sumber
J , 20 byte
1-diindeks
Cobalah online!
sumber
APL + WIN, 23 byte
Penjelasan:
sumber
∊
jawaban Anda untuk menggantikan jawaban saya↑,/
. Saya tidak tahu fungsi itu. Terima kasihSILOS , 45 byte
Cobalah online!
sumber
Perl 5, 30 + 1 (-p) byte
coba online
sumber
Clojure 51 byte
Diindeks 0, misalnya
9
pengembalian input256.0
.sumber
C
76, 62 bytey; f (n) {y = (int) (-. 5 + sqrt (1 + 8 * ~ -n) / 2) +2; n + = y * (3-y) / 2-1; return (int ) pow (y-1, n);}Saya mendasarkannya pada kode ini
Cobalah di ideone
sumber
Pyt ,
3937 byte1-diindeks
Penjelasan:
Secara singkat, ini menghitung setiap baris. Jika nomor yang diminta ada di baris itu, kembalikan; jika tidak, buka baris berikutnya.
sumber