Inilah tantangannya. Tulis beberapa kode untuk menampilkan semua bilangan bulat dalam suatu rentang. Kedengarannya mudah, tapi inilah bagian yang sulit. Itu akan mulai dengan angka terendah, lalu tertinggi. Kemudian angka terendah yang belum ada dalam array. Maka yang tertinggi yang belum ada di dalamnya.
Contoh:
Mari kita ambil 1 hingga 5 sebagai permulaan kita
Jumlahnya adalah [1, 2, 3, 4, 5].
Kita ambil yang pertama, jadi [1]. Angka yang tersisa adalah [2, 3, 4, 5]. Kami mengambil yang terakhir, array baru adalah [1, 5]. Angka yang tersisa adalah [2, 3, 4]. Kami mengambil yang pertama, array baru adalah [1, 5, 2]. Angka yang tersisa adalah [3, 4]. Kami mengambil yang terakhir, array baru adalah [1, 5, 2, 4]. Angka yang tersisa adalah [3]. Kami mengambil yang pertama, array baru adalah [1, 5, 2, 4, 3]. Tidak ada angka yang tersisa, kita sudah selesai. Keluaran [1, 5, 2, 4, 3]
Aturan:
- Ini adalah kode golf, tulis dalam byte paling sedikit, bahasa apa pun.
- Tidak ada celah standar.
- Tautan ke penerjemah online, tolong? (Misalnya, https://tio.run/ )
- Dua input, keduanya bilangan bulat. Kisaran ujung bawah, dan kisaran ujung atas.
- Saya tidak keberatan apa tipe data dari output, tetapi harus menunjukkan angka dalam urutan yang benar.
Contohnya
Rendah: 4 Tinggi: 6 Hasil: 4 6 5
Rendah: 1 Tinggi: 5 Hasil: 1 5 2 4 3
Rendah: -1 Tinggi: 1 Hasil: -1 1 0
Rendah: -1 tinggi: 2 Hasil: -1 2 0 1
Rendah: -50 Tinggi: 50 Hasil: -50 50 -49 49 -48 48 -47 47 -46 46 -45 45 -44 44 -43 43 -42 42 -41 41 -40 40 -39 39 -38 38 -37 37 -36 36 -35 35 -34 34 -33 33 -32 32 -31 31 -30 30 -29 29 -28 28 -27 27 -26 26 -25 25 -24 24 -23 23 -22 22 -21 21 - 20 20 -19 19 -18 18 -17 17 -16 16 -15 15 -14 14 -13 13 -12 12 -11 11 -10 10 -9 9 -8 8 -7 7 -6 6 -5 5 -4 4 -3 3 -2 2 -1 1 0
Selamat bermain golf!
Jawaban:
R ,
383736 byteCobalah online!
Mengeksploitasi fakta bahwa R menyimpan matriks dengan bijaksana
sumber
rbind
jauh lebih baik daripada pendekatan saya, tetapi Anda dapat menyimpan 1 byte dengan menggunakan[seq(a:b)]
bukanunique
.seq(a:b)
Haskell , 30 byte
Cobalah online!
sumber
R ,
65646160 byte-1 byte terima kasih kepada Robert S.
-4 Terima kasih lagi untuk digEmAll
Cobalah online!
sumber
length(z)
dengansum(z|1)
menghemat 1 byte :)|
ed dengan 1. Yang selalu sama dengan 1. Ketika Anda mengambil jumlah, Anda memiliki vektor yang diisi denganTRUE
s sehingga hasilnya sama dengan panjang vektor. Jika vektornya kosong, Anda tidak ada artinya|
dengan demikian vektor keluarannyalogical(0)
. Ketika Anda mengambil jumlah itu, itu 0Haskell , 39 byte
Cobalah online!
sumber
Python 2 , 44 byte
Cobalah online!
sumber
PowerShell ,
5948 byteCobalah online!
(Sepertinya lama ...)Mengambil input
$a
dan$b
, membangun rentang0 .. ($b-$a)
, menyimpannya ke dalam$z
, kemudian loop melalui rentang itu. Perulangan melalui rentang itu hanya digunakan sebagai penghitung untuk memastikan kami mendapatkan iterasi yang cukup. Setiap iterasi, kami menempatkan$a
dan$b
di pipa dengan penambahan / pengurangan. Itu memberi kita sesuatu seperti itu1,5,2,4,3,3,4,2,5,1
sehingga kita perlu mengirisnya dari0
hingga$b-$a
(yaitu, hitungan) dari array asli sehingga kita hanya tersisa dengan elemen yang sesuai. Yang tersisa pada pipa dan output tersirat.-11 byte berkat mazzy.
sumber
$b-$a
trik itu - itu pintar!05AB1E , 6 byte
Cobalah online!
Penjelasan
sumber
.ι
;)Japt , 14 byte
Cobalah online!
sumber
Stax , 7 byte
Jalankan dan debug itu
sumber
R , 51 byte
Cobalah online!
Penjelasan: Untuk urutan
x:y
panjangN
, buat matriks dua-oleh-N yang terdiri dari urutan x: y di baris atas dan y: x di baris bawahmatrix(c(z,rev(z)),2,,T)
. Jika kita memilihN
elemen pertama dari matriks[seq(z)]
, mereka akan dipilih oleh kolom, memberikan output yang diperlukan.Dikalahkan oleh digEmAll
sumber
cQuents , 19 byte
Cobalah online!
Perhatikan bahwa ini tidak berfungsi pada TIO sekarang karena juru bahasa TIO tidak mutakhir.
Penjelasan
sumber
Haskell, 39 byte
Cobalah online!
sumber
C # (Visual C # Interactive Compiler) , 46 byte
Disimpan 4 byte berkat dana!
Cobalah online!
C # (Visual C # Interactive Compiler) , 65 byte
Cobalah online!
sumber
Bytecode JVM (OpenJDK asmtools JASM), 449 byte
Tidak disatukan (dan sedikit lebih bersih)
Fungsi mandiri, perlu dipanggil dari Jawa sebagai
b.a(num1,num2)
.Penjelasan
Kode ini menggunakan parameter metode sebagai variabel, serta boolean di # 3 lokal yang memutuskan nomor mana yang akan di-output. Setiap iterasi loop baik kiri atau kanan adalah output, dan angka itu bertambah untuk kiri atau dikurangi untuk kanan. Lingkaran berlanjut sampai kedua angka sama, maka angka itu adalah output.
... Saya memiliki perasaan yang berbeda. Saya secara besar - besaran kalah dalam jumlah byte
sumber
Bahasa Wolfram (Mathematica) ,
5654 byteIni adalah kali pertama saya bermain golf!
Cobalah online!
Disimpan 2 byte menggunakan notasi infiks.
Penjelasan:
Atau, kita bisa menggunakan
Take[...,b-a+1]
untuk hasil yang sama.Tes:
Ouput:
sumber
APL (dzaima / APL) , 21 byte
Cobalah online!
sumber
Japt, 7 byte
Mengambil input sebagai array.
Cobalah atau jalankan semua test case
sumber
MATL , 8 byte
Cobalah online!
Penjelasan
sumber
JavaScript, 40 byte
Cobalah secara Online!
sumber
Keempat (gforth) , 52 byte
Cobalah online!
Penjelasan
Putaran dari 0 ke (Akhir - Mulai). Tempatkan Akhir dan Mulai di atas tumpukan.
Setiap Iterasi:
Penjelasan Kode
sumber
Julia 0.7 , 29 byte
Cobalah online!
sumber
Haskell, 30 byte
Penggunaan:
3%7
memberi `[3,7,4,6,5]Untuk input
l, h
, fungsi panggilan secara rekursif dengan inputl+1, h-1
, dan menambahl,h
awal. Alih-alih kondisi penghentian apa pun, kode ini digunakantake(h-l)
untuk mempersingkat urutan ke panjang yang benar (yang sebaliknya akan menjadi urutan tak berhingga dari peningkatan dan penurunan angka).sumber
Brachylog , 15 byte
Input adalah daftar 2-elemen [lo, hai]. Perhatikan bahwa garis bawah digunakan untuk angka negatif. Cobalah online!
Penjelasan
sumber
MathGolf , 6 byte
Cobalah online!
Penjelasan dengan
(1, 5)
Alasan mengapa ini bekerja adalah karena fakta bahwa semua elemen dalam output harus unik, sehingga operator elemen unik akan menyaring paruh kedua array, menghasilkan output yang benar.
sumber
Perl 5
-ln
, 37 byteCobalah online!
sumber
Java (JDK) , 52 byte
Cobalah online!
sumber
Bersih , 48 byte
Cobalah online!
sumber
Ruby ,
373633 byteCobalah online!
Versi rekursif dengan 3 byte disimpan oleh G B.
Ruby , 38 byte
Cobalah online!
Versi non-rekursif.
sumber
Cubix, 16 byte
Coba di sini
Kubus
Penjelasan
Pada dasarnya, ini memindahkan kedua batas lebih dekat bersama satu langkah pada satu waktu sampai mereka bertemu. Setiap kali melalui loop, kami
s
wap batas,O
utput, mengambil perbedaan, dan kenaikan dengan)
atau pengurangan(
berdasarkan pada tanda.sumber
Pyth,
108 byteCoba di sini
Penjelasan
sumber