Bei zwei positiven ganzen Zahlen A und B wird das am wenigsten verbreitete Vielfache dargestellt, indem zwei Strichzeilen ( -
) mit der Länge LCM (A, B) ausgegeben werden , nachdem jeder Ath-Strich in der ersten Zeile und jeder B-Strich in der zweiten Zeile durch vertikale Striche ersetzt wurden ( |
).
Auf diese Weise ist das Ende jeder Zeile die einzige Stelle, an der sich zwei |
Zeilen befinden.
Wenn beispielsweise A = 6 und B = 4, ist LCM (6, 4) = 12.
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: -----|-----| ---|---|---|
Somit wäre die endgültige Ausgabe
-----|-----| ---|---|---|
Die Reihenfolge der Eingabenummern sollte der Reihenfolge der Zeilen entsprechen.
Der kürzeste Code in Bytes gewinnt.
Testfälle
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
------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|
----------|----------|----------|----------|----------|----------|----------|----------|----------|----------|----------|----------|----------|
Antworten:
Python 3, 80 Bytes
1 Byte dank Halvard Hummel und 1 Byte dank Jonathan Allan gespeichert.
Online testen!
Online testen! (82 Bytes - erste Antwort)
Dies ist das Beste, was ich in Python 2 tun konnte (81 Byte). Anscheinend kann ich diese Antwort nicht kommentieren. Ich werde dies stattdessen hier posten:
Online testen!
Erster Versuch hier wohl suboptimal!
quelle
Haskell , 57 Bytes
Probieren Sie es online!
quelle
0^0=1
Trick noch nie gesehen - cleverGelee , 12 Bytes
Probieren Sie es online!
quelle
MATL ,
1615 BytesDie Eingabe ist ein Spaltenvektor mit den beiden Zahlen. Probieren Sie es online!
Als Bonus kann die Eingabe mehr als zwei Zahlen enthalten . Probieren Sie es online!
Erläuterung
quelle
He
?[1; 1]
, da MATL (AB) die Array-Form mit der Indizierung handhabt. (Alternativ könnte die TransponierteHe
am Ende durch ersetzt werden , weshalb sie anfangs dort war)R ,
109105 BytesProbieren Sie es online!
Anonyme Funktion. Berechnet
l=lcm(a,b)
und generiert dann einen Bereich von0
bisl
bisa
und dann vonl
bis2*l
bisb
, setzt die Indizes auf|
und druckt als Matrix mitl
Spalten.quelle
Python 2 , 66 Bytes
Probieren Sie es online!
quelle
C 72 Bytes
quelle
Schale , 12 Bytes
Probieren Sie es online!
Ja, in Husk ist ein lcm eingebaut. Nein, ich brauche es nicht.
Bonus: Funktioniert mit beliebig vielen Eingabewerten
Erläuterung
quelle
Mathematica, 63 Bytes
Probieren Sie es online!
und eine andere version die user202729 wirklich, wirklich, wirklich gepostet sehen will
Mathematica, 59 Bytes
Dieser verwendet Sonderzeichen
\[Divides]
∣
quelle
\[Divides]
anstelle desMod
Operators die Teilbarkeit darstellen, wodurch 4 Bytes eingespart werden. Auch Mathics TIO sollte das nicht drucken{Null, Null}
.05AB1E , 13 Bytes
Verwendet die 05AB1E- Codierung. Probieren Sie es online!
quelle
.¿Lε²¹‚%_„-|è}øJ»
.APL (Dyalog) , 22 Bytes
Geht davon aus
⎕IO←0
. Nimmt A, B als rechtes Argument. Bonus: Bewältigt Eingabelisten beliebiger Länge!Probieren Sie es online!
{
...}
anonymer Lambda, wo⍵
das richtige Argument darstellt'|-'[
…]
Indexiere den String mit:∧/
LCM über den Eingang⍳
zuerst so viele Zahlen (0 bis N-1)⍵∘.|
Aufteilung Resttabelle mit der Eingabe vertikal und horizontal×
signum⌽
horizontal spiegelnquelle
⎕IO←0
, da dies der Standard ist.Oktave ,
4638 Bytes-8 Bytes dank mehrerer Vorschläge von Luis Mendo
Probieren Sie es online!
quelle
JavaScript (ES6), 69 Byte
Läuft rekursiv, bis
A
durch beides teilbar ista
undb
- gibt einen Bindestrich oder eine Pipe basierend aufa
der Teilbarkeit durch ausA
.Die Funktion ruft sich dann durch Vertauschen von
a
und aufb
.Die
S
Variable verhindert, dass sich die Funktion unendlich selbst aufruft.Testfälle:
Code-Snippet anzeigen
Bisherige Antworten:
JavaScript (ES8), 91 Byte
Verwendet die Algorithmen:
Ruft sich nur einmal rekursiv auf, um die zweite Zeile auszugeben.
Testfälle:
Code-Snippet anzeigen
JavaScript (ES6), 93 Byte
Gleicher Algorithmus wie zuvor mit
repeat
anstelle vonpadStart
.quelle
padStart
es wäre 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 Bytes
Probieren Sie es online aus
quelle
*(a-1)
zu*~-a
und*(b-1)
zu golfen kann*~-b
? Könnten Sie vielleicht auch einen TIO-Link mit Testcode hinzufügen ? (Oh, und dieser Avatar scheint mir nicht sehr kubisch zu sein.; P)*~-a
ist groß, aber leider Scala erfordert mehr Klammern:*(~(-a))
deutlich zu machen , dass die Verkettungen*~-
,*~
,~-
sind keine Lust Funktionsnamen. Ich habe einen TIO-Link hinzugefügt.~-
kann in Scala Funktionsnamen sein. Ich erinnere mich an jemanden, der das vor einiger Zeit erwähnt hat. Das ist beim Golfen bedauerlich. Nochmals herzlich willkommen und schöne erste Antwort.Java (OpenJDK 8) , 103 Byte
Probieren Sie es online!
110 Bytes, n Eingabewerte
Probieren Sie es online!
quelle
Java 8,
125118117 Bytes-7 Bytes dank @Nevay .
-1 Byte, indem mit einer abschließenden neuen Zeile begonnen wird (
A="",B="\n"
ersetzt durchA="\n",B=A
).Erläuterung:
Probieren Sie es hier aus.
quelle
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)
als ich nach einem kurzen Weg gesucht habe, um zu überprüfen, ob beide mit|
... enden . Und es ist auch klug, B mit einer neuen Zeile zu beginnen, anstatt sie bei der Rückkehr zwischen sie zu setzen.Python 2 ,
9688 BytesBearbeiten: 4 Bytes dank @Leaky Nun gespeichert
Bearbeiten: 4 Bytes dank @Rod gespeichert
Probieren Sie es online!
quelle
[...]
mit'\n'.join(...)
zu beheben.Python 2 , 89 Bytes
Nicht der kürzeste Python 2-Eintrag, aber eine andere Herangehensweise als
gcd
die, die möglicherweise noch zum Golfen geeignet ist.Probieren Sie es online!
quelle
Haskell ,
6660 BytesProbieren Sie es online!
Die gleiche Länge:
Alte Lösung:
quelle
'\n':
.C (gcc) ,
12199939289 BytesDas sollte viel kürzer sein, hmmmm ....
Probieren Sie es online!
quelle
J , 20 Bytes
Probieren Sie es online!
quelle
SOGL V0.12 ,
1916 BytesProbieren Sie es hier aus!
Erläuterung:
quelle
Gestapelt ,
4238 BytesProbieren Sie es online!
Eingabe in Form eines Zahlenpaares. Alle Testfälle sehen zusammen wie Gebäude aus.
Erläuterung
Dies nimmt zuerst die
lcm
der beiden Eingangsnummern aufz
. Dannk
erzeugen wir für jede Zahlz / k
Zeichenfolgen mit-
einer Längek - 1
, addieren|
sie zum Ende und geben sie jeweils aus.Bisherige gezählte Versuche
42 Bytes:
[:...lcm@z:[:z\/\#-'-'*\rep'|'+''#`out]"!]
Andere Versuche
43 Bytes:
[:...lcm@z:[:z\/\#-'-'*\rep'|'#`'|'+out]"!]
45 Bytes:
['@lcm'!#~@z,[:z\/\#-'-'*\rep'|'#`'|'+out]"!]
45 Bytes:
[:...lcm@x[x'-'*\#<$betailmap'|'#`'|'+out]"!]
53 Bytes:
[:...lcm'-'*@z#-'.'*'('\+')'+'.'+[z\'$1|'repl out]"!]
54 Bytes:
[:...lcm@x{!x'-'*('('n#-'.'*').')''#`'$1|'repl out}"!]
quelle
JavaScript (ES6), 89
Auswertung der LCM mit wiederholten Abhängigkeiten.
Weniger golfen
Prüfung
quelle
VBA (Excel),
144142 Bytes-2 Bytes. Vielen Dank, Sir Washington Guedes.
quelle
Ruby ,
6457 Bytes-7 Bytes dank G B.
Probieren Sie es online!
quelle
Holzkohle ,
323029 BytesProbieren Sie es online! Link ist eine ausführliche Version des Codes. Bearbeiten: 1 Byte dank nur @ ASCII gespeichert.
quelle
Google Sheets, 77 Bytes
Anonyme Arbeitsblattformel, die Eingaben aus dem Bereich
A1:B1
und Ausgaben in die aufrufende Zelle übernimmt-4 Bytes dank @EngineerToast
quelle
LCM(A1,B1)
um nurLCM(1:1)
4 Bytes zu sparen. Ich halte es für vernünftig, ein leeres Startblatt anzunehmen und anzugeben, wo sich sowohl die Eingaben als auch die Formel befinden.Excel VBA, 79 Bytes
Anonyme VBE-Sofortfensterfunktion, die Eingaben aus dem Bereich entgegennimmt
[A1:B1]
und eine Visualisierung ihres LCM an das VBE-Sofortfenster ausgibt.Dies ist ein Port meiner Google Sheets-Antwort .
quelle
Japt , 12 Bytes
Japt Interpreter
Eingaben als Array von Zahlen. Ausgabe als Array von Strings. Das Flag -R verbessert das Erscheinungsbild der Ausgabe geringfügig, ist jedoch für die Logik nicht erforderlich.
Erläuterung:
Extra danke an Shaggy für das Auffinden einiger Bytes zum Speichern.
quelle