Diberi dua bilangan bulat positif, A dan B, mengilustrasikan kelipatan paling umum mereka dengan mengeluarkan dua garis garis ( -
) dengan panjang LCM (A, B) setelah mengganti setiap tanda hubung Ath di baris pertama dan setiap tanda ht B di baris kedua dengan garis vertikal ( |
).
Dengan cara ini, akhir setiap baris akan menjadi satu-satunya tempat |
baris dua.
Misalnya, jika A = 6 dan B = 4, LCM (6, 4) = 12, jadi:
two lines of 12 dashes: ------------ ------------ replace every 6th dash in the first line with a vertical bar: -----|-----| ------------ replace every 4th dash in the second line with a vertical bar: -----|-----| ---|---|---|
Dengan demikian hasil akhir akan
-----|-----| ---|---|---|
Urutan nomor input harus sesuai dengan urutan garis.
Kode terpendek dalam byte menang.
Testcases
A B
line for A
line for B
1 1
|
|
1 2
||
-|
2 1
-|
||
2 2
-|
-|
6 4
-----|-----|
---|---|---|
4 6
---|---|---|
-----|-----|
2 3
-|-|-|
--|--|
3 2
--|--|
-|-|-|
3 6
--|--|
-----|
2 5
-|-|-|-|-|
----|----|
4 3
---|---|---|
--|--|--|--|
10 10
---------|
---------|
10 5
---------|
----|----|
10 6
---------|---------|---------|
-----|-----|-----|-----|-----|
24 8
-----------------------|
-------|-------|-------|
7 8
------|------|------|------|------|------|------|------|
-------|-------|-------|-------|-------|-------|-------|
6 8
-----|-----|-----|-----|
-------|-------|-------|
13 11
------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|
----------|----------|----------|----------|----------|----------|----------|----------|----------|----------|----------|----------|----------|
Jawaban:
Python 3, 80 byte
Disimpan 1 byte berkat Halvard Hummel dan 1 byte terima kasih kepada Jonathan Allan.
Uji secara online!
Uji secara online! (82 byte - jawaban awal)
Ini adalah yang terbaik yang bisa saya lakukan dalam Python 2 (81 byte). Sepertinya saya tidak bisa mengomentari jawaban itu, saya hanya akan memposting ini di sini:
Uji secara online!
Upaya pertama di sini, mungkin kurang optimal!
sumber
Haskell , 57 byte
Cobalah online!
sumber
0^0=1
trik itu sebelumnya - pintarJelly , 12 byte
Cobalah online!
sumber
MATL ,
1615 byteInput adalah vektor kolom dengan dua angka. Cobalah online!
Sebagai bonus, input dapat berisi lebih dari dua angka . Cobalah online!
Penjelasan
sumber
He
?[1; 1]
, karena cara MATL (AB) menangani bentuk array dengan pengindeksan. (Atau, transpos dapat digantikan olehHe
pada akhirnya, itulah sebabnya awalnya ada di sana)R ,
109105 byteCobalah online!
Fungsi anonim. Menghitung
l=lcm(a,b)
, kemudian menghasilkan rentang dari0
kel
oleha
, kemudian daril
ke2*l
olehb
, mengatur indeks ke|
dan mencetak sebagai matriks denganl
kolom.sumber
Python 2 , 66 byte
Cobalah online!
sumber
C, 72 byte
sumber
Sekam , 12 byte
Cobalah online!
Ya, ada lcm bawaan di Husk. Tidak, saya tidak membutuhkannya.
Bonus: bekerja dengan sejumlah nilai input
Penjelasan
sumber
Mathematica, 63 byte
Cobalah online!
dan versi lain yang pengguna202729 benar-benar ingin melihat diposting
Mathematica, 59 byte
yang ini menggunakan karakter khusus
\[Divides]
∣
sumber
\[Divides]
alih-alihMod
operator untuk mewakili keterpisahan, yang menghemat 4 byte. Juga Matematika TIO tidak boleh mencetak{Null, Null}
.05AB1E , 13 byte
Menggunakan penyandian 05AB1E . Cobalah online!
sumber
.¿Lε²¹‚%_„-|è}øJ»
.APL (Dyalog) , 22 byte
Diasumsikan
⎕IO←0
. Mengambil A, B sebagai argumen yang benar. Bonus: menangani daftar input dengan panjang berapa pun!Cobalah online!
{
...}
lambda anonim di mana⍵
mewakili argumen yang tepat'|-'[
...]
mengindeks string dengan:∧/
LCM di input⍳
pertama yang banyak ɩ ntegers (0 hingga N-1)⍵∘.|
tabel sisa pembagian dengan input secara vertikal dan horizontal×
signum⌽
balik secara horizontalsumber
⎕IO←0
, karena itu adalah default di sana.Oktaf ,
4638 byte-8 Bytes berkat beberapa saran oleh Luis Mendo
Cobalah online!
sumber
JavaScript (ES6), 69 byte
Berjalan secara rekursif sampai
A
habis oleh keduanyaa
danb
- mengeluarkan tanda hubung atau pipa berdasarkana
pembagian olehA
.Fungsi ini kemudian memanggil dirinya sendiri, menukar
a
danb
.The
S
variabel mencegah fungsi dari memanggil itu sendiri jauh.Kasus uji:
Tampilkan cuplikan kode
Jawaban sebelumnya:
JavaScript (ES8), 91 byte
Menggunakan algoritma:
Secara rekursif menyebut dirinya hanya sekali untuk menampilkan baris kedua.
Kasus uji:
Tampilkan cuplikan kode
JavaScript (ES6), 93 byte
Algoritma yang sama seperti sebelumnya, menggunakan
repeat
bukanpadStart
.sumber
padStart
itu ES8?f=(a,b,A=1)=>(A%a?'-':'|')+(A%a|A%b?f(a,b,A+1):a<0?'':`\n`+f(-b,a))
Scala, 98 byte
Cobalah online
sumber
*(a-1)
golf ke*~-a
dan*(b-1)
ke*~-b
? Juga, dapatkah Anda menambahkan tautan TIO dengan kode uji? (Oh, dan avatar itu sepertinya tidak kubik bagiku*~-a
besar, tapi sayangnya Scala membutuhkan lebih kurung:*(~(-a))
untuk membuat jelas bahwa concatenations*~-
,*~
,~-
tidak nama fungsi mewah. Saya menambahkan tautan TIO.~-
bisa nama fungsi di Scala. Saya ingat seseorang menyebutkan itu sebelumnya beberapa waktu yang lalu. Sangat disayangkan tentang golf. Sekali lagi selamat datang, dan jawaban pertama yang bagus.Java (OpenJDK 8) , 103 byte
Cobalah online!
110 byte, n nilai input
Cobalah online!
sumber
Java 8,
125118117 byte-7 byte berkat @Nevay .
-1 byte dengan memulai dengan baris baru trailing (
A="",B="\n"
diganti denganA="\n",B=A
).Penjelasan:
Coba di sini.
sumber
a->b->{String A="",B="\n",k="|";for(int i=0;!A.endsWith(k)|!B.endsWith(k);B+=i%b<1?k:"-")A+=++i%a<1?k:"-";return A+B;}
!A.endsWith(t)|!B.endsWith(t)
ketika saya mencari cara singkat untuk memeriksa apakah keduanya berakhir dengan|
.. Dan memulai B dengan baris baru alih-alih menempatkannya di antara mereka di bagian belakang juga cerdas.Python 2 ,
9688 byteSunting: Disimpan 4 byte berkat @Leaky Nun
Sunting: Disimpan 4 byte berkat @Rod
Cobalah online!
sumber
[...]
dengan'\n'.join(...)
untuk memperbaiki.Python 2 , 89 byte
Bukan entri Python 2 terpendek, tetapi pendekatan yang berbeda dari
gcd
yang mungkin masih golf.Cobalah online!
sumber
Haskell ,
6660 byteCobalah online!
Sama panjang:
Solusi lama:
sumber
'\n':
.C (gcc) ,
12199939289 byteIni harusnya jauh lebih pendek, hmmmm ....
Cobalah online!
sumber
J , 20 byte
Cobalah online!
sumber
SOGL V0.12 ,
1916 byteCoba Di Sini!
Penjelasan:
sumber
Ditumpuk ,
4238 byteCobalah online!
Masukan dalam bentuk sepasang angka. Semua test case disatukan terlihat seperti bangunan.
Penjelasan
Ini pertama-tama akan
lcm
memasukkan dua nomor inputz
. Kemudian, untuk setiap angkak
, kami menghasilkanz / k
string dengan-
panjangk - 1
, menambahkan|
ke akhir masing-masing, dan menghasilkan masing-masing.Upaya yang dihitung sebelumnya
42 byte:
[:...lcm@z:[:z\/\#-'-'*\rep'|'+''#`out]"!]
Upaya lain
43 byte:
[:...lcm@z:[:z\/\#-'-'*\rep'|'#`'|'+out]"!]
45 byte:
['@lcm'!#~@z,[:z\/\#-'-'*\rep'|'#`'|'+out]"!]
45 byte:
[:...lcm@x[x'-'*\#<$betailmap'|'#`'|'+out]"!]
53 byte:
[:...lcm'-'*@z#-'.'*'('\+')'+'.'+[z\'$1|'repl out]"!]
54 byte:
[:...lcm@x{!x'-'*('('n#-'.'*').')''#`'$1|'repl out}"!]
sumber
JavaScript (ES6), 89
Mengevaluasi LCM dengan kecanduan berulang.
Kurang golf
Uji
sumber
VBA (Excel),
144142 byte-2 byte. Terima kasih, Sir Washington Guedes.
sumber
Ruby ,
6457 byte-7 byte berkat G B.
Cobalah online!
sumber
Arang ,
323029 byteCobalah online! Tautan adalah untuk mengucapkan versi kode. Sunting: Disimpan 1 byte berkat hanya @ ASCII.
sumber
Google Sheets, 77 Bytes
Rumus lembar kerja anonim yang mengambil input dari rentang
A1:B1
dan keluaran ke sel panggilan-4 Bytes berkat @EngineerToast
sumber
LCM(A1,B1)
menjadi hanyaLCM(1:1)
untuk menghemat 4 byte. Saya pikir masuk akal untuk mengasumsikan lembar awal kosong dan menentukan di mana input dan formula berada.Excel VBA, 79 Bytes
Fungsi jendela langsung VBE anonim yang mengambil input dari kisaran
[A1:B1]
dan menampilkan visualisasi LCM mereka ke jendela langsung VBE.Ini adalah port jawaban Google Sheets saya .
sumber
Japt , 12 byte
Japt Interpreter
Input sebagai array angka. Output sebagai array string. Bendera -R sedikit meningkatkan bagaimana output terlihat, tetapi tidak perlu untuk logika.
Penjelasan:
Terima kasih ekstra untuk Shaggy karena menemukan beberapa byte untuk disimpan.
sumber