Tugas Anda adalah, diberi dua bilangan bulat positif, dan , mengembalikan angka pertama dalam urutan rentang kenaikan.
Urutan berbagai tambahan pertama menghasilkan berkisar dari satu sampai inklusif. Misalnya, jika adalah , itu akan menghasilkan daftar . Kemudian berulang kali menambahkan nilai terakhir yang ditambahkan oleh ke daftar yang ada, dan melanjutkan.
Masukan misalnya:
n=3
1. Get range 1 to n. List: [1,2,3]
2. Get the last n values of the list. List: [1,2,3]. Last n=3 values: [1,2,3].
3. Increment the last n values by 1. List: [1,2,3]. Last n values: [2,3,4].
4. Append the last n values incremented to the list. List: [1,2,3,2,3,4]
5. Repeat steps 2-5. 2nd time repeat shown below.
2nd repeat:
2. Get the last n values of the list. List: [1,2,3,2,3,4]. Last n=3 values: [2,3,4]
3. Increment the last n values by 1. List: [1,2,3,2,3,4]. Last n values: [3,4,5].
4. Append the last n values incremented to the list. List: [1,2,3,2,3,4,3,4,5]
Kasus uji:
n, x, Output
1, 49, [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49]
2, 100, [1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32,33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40,41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,51]
3, 13, [1,2,3,2,3,4,3,4,5,4,5,6,5]
/
dengan//
Jelly , 4 byte
Tautan diad menerima dua bilangan bulat positif,
x
di kiri dann
di kanan, yang menghasilkan daftar bilangan bulat positif.Cobalah online!
Bagaimana?
sumber
p
...R , 33 byte
Cobalah online!
Solusi Python Port Jonathan Allan .
R , 36 byte
Cobalah online!
Solusi asli saya; menghasilkan matriksn×x dengan setiap kolom sebagai kenaikan, yaitu, 1…n,2…n+1,… , kemudian mengambil entri x pertama (turun kolom).
sumber
05AB1E , 6 byte
Port of @JonathanAllan menjawab Jelly , jadi pastikan untuk membatalkannya!
Input pertama adalahx , input kedua adalah n .
Cobalah secara online atau verifikasi semua kasus uji .
Penjelasan:
Pendekatan awal saya sendiri adalah 8 byte :
Input pertama adalahn , input kedua adalah x .
Cobalah secara online atau verifikasi semua kasus uji .
Penjelasan:
sumber
Perl 6 , 18 byte
Cobalah online!
Fungsi kari
f(x)(n)
.Penjelasan
sumber
Brain-Flak , 100 byte
Dengan komentar dan pemformatan:
Cobalah online!
sumber
J ,
1312 byteCobalah online!
bagaimana
Kita ambil
x
sebagai arg kiri,n
sebagai kanan. Mari kita ambilx = 8
dann = 3
untuk contoh ini:+/&i.
: Transform kedua args dengan membuat rentang integeri.
, yaitu arg kiri menjadi0 1 2 3 4 5 6 7
dan arg kanan menjadi0 1 2
. Sekarang kita membuat "tabel tambahan+/
dari keduanya:1 +
: Tambahkan 1 ke setiap elemen tabel ini:[: ,
: Ratakan,
:[ $
: Membentuknya$
sehingga memiliki jumlah elemen yang sama dengan arg asli, yang tidak ditransformasi[
, yaitux
:sumber
Oktaf , 25 byte
Fungsi anonim yang memasukkan angka
n
danx
, dan menghasilkan vektor baris.Cobalah online!
Bagaimana itu bekerja
Pertimbangkan
n=3
danx=13
.Kode
(1:n)'
memberikan vektor kolomKemudian
(0:x)
berikan vektor barisTambahannya
(1:n)'+(0:x)
adalah elemen-bijaksana dengan siaran, dan karenanya memberikan matriks dengan semua pasangan jumlah:Pengindeksan dengan
(1:x)
mengambilx
elemen pertama dari matriks ini dalam urutan linier kolom-utama (turun, lalu lintas), sebagai vektor baris:sumber
Haskell , 31 byte
Cobalah online!
Ini mungkin jenis rekursi favorit saya. Kita mulai dengan nilai-nilai dari 1 hingga n dan kemudian menggabungkan nilai-nilai yang sama (melalui referensi-sendiri) +1. maka kita hanya mengambil nilai x pertama.
sumber
Keempat (gforth) , 34 byte
Cobalah online!
Penjelasan Kode
sumber
MATL ,
16, 10 byteCobalah online!
-6 byte disimpan berkat Guiseppe dan Luis Mendo!
Penjelasan:
sumber
Gaia , 8 byte
Cobalah online!
Apakah pada dasarnya hal yang sama dengan jawaban Oktaf dan MATL .
sumber
Jelly , 5 byte
Cobalah online!
sumber
Ruby , 32 byte
Cobalah online!
sumber
Japt
-m
,127 byteSolusi Port of Python Jonathan .
Dibawa
x
sebagai input pertama.Cobalah
sumber
JavaScript, 36 byte
Cobalah secara Online!
sumber
alert
atauprint
bukannya mengembalikan Array dapat mengurangi ini menjadi 34 byte:n=>g=x=>x&&print(g(--x)|1+x%n+x/n)
Perl 5
-na
, 43 byteCobalah online!
sumber
K (oK) ,
1716 byteCobalah online!
sumber
Stax , 6 byte
Jalankan dan debug itu
Dibongkar & dijelaskan:
sumber
Alchemist , 77 byte
Cobalah online!
Tambahkan dan hasilkan penghitung n kali, lalu kurangi n-1 sebelum diulang.
sumber
Arang , 18 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Saya memiliki mimpi untuk menyemai daftar dengan rentang indeks-nol dan kemudian mengirisnya lagi tapi itu sebenarnya 2 byte lebih lama. Penjelasan:
sumber
JS, 54 byte
Cobalah online!
sumber
f=
. Anda dapat menyimpan satu byte dengan mengeringkan parameter (n=>x=>
) dan lainnya dengan menyebarkan & memetakan array ([...Array(x)].map()
).Haskell,
3433 byteCobalah online!
sumber
Perl 5 , 39 byte
Cobalah online!
sumber
C (gcc) ,
4944 byteMenggunakan rekursi untuk menghemat beberapa byte.
Cobalah online!
sumber
APL + WIN,
29 2316 byteIndeks asal = 0 dan meminta n dan x
Cobalah online! Atas perkenan Dyalog Classic
sumber
C (dentang), 843 byte
sumber
argc
,argv
danranges
). Juga, tidak perlu menambahkan pesan peringatan .. Anda dapat menganggap input tersebut valid, kecuali jika tantangan mengatakan sebaliknya.Ikon , 48 byte
Cobalah online!
sumber
C # (Visual C # Interactive Compiler) , 41 byte
Cobalah online!
sumber
Faktor , 55 byte
Cobalah online!
sumber