Erstellen Sie einen Notfallkorridor

46

In einigen Ländern gibt es Empfehlungen oder Gesetze zur Bildung von Notfallkorridoren auf Straßen mit mehreren Fahrspuren pro Richtung. (Im Folgenden betrachten wir nur die Fahrspuren in Fahrtrichtung.) Dies sind die Regeln, die in Deutschland gelten:

  • Wenn es nur eine Spur gibt, sollte jeder nach rechts fahren, damit die Rettungsfahrzeuge links vorbeifahren können.
  • Wenn es zwei oder mehr Spuren gibt, sollten die Autos auf der linken Spur nach links fahren, und alle anderen sollten nach rechts fahren.

Herausforderung

Bei der Anzahl N>0der regulären Fahrspuren das Layout der Fahrspuren ausgeben, wenn ein Notfallkorridor mit einer Zeichenfolge aus N+1ASCII-Zeichen gebildet wird. Sie können 33bis zu zwei beliebige Zeichen aus dem ASCII-Code verwenden 126, eines für den Notfallkorridor und eines für die Kennzeichnung der Fahrzeuge. Nachgestellte oder führende Leerzeichen, Zeilenumbrüche usw. sind zulässig.

Beispiele

Hier verwenden wir Efür den Notfallkorridor und Cfür die Autos.

N  Output
1  EC
2  CEC
3  CECC
4  CECCC
5  CECCCC
6  CECCCCC
   etc
fehlerhaft
quelle
18
Ich werde nicht darauf hereinfallen! Sie suchen nur nach einer eigenen Spur, um durch Ihre hinterhältige Schlange zu schlittern.
Orlp
16
@ PmanAce Ich glaube wirklich nicht, dass Flawr unsere Hilfe dafür braucht: P
Orlp
8
+1 weil es tatsächlich in Deutschland funktioniert. War in der Situation am letzten Wochenende.
ElPedro
10
@ msh210 Ich denke, die Bilder auf der deutschen WP-Seite erklären es am besten.
Fehler
9
Sie wissen, das sah anfangs nach einer genauen Herausforderung mit Cund aus E, aber es gibt so viele nette Ansätze, die für diese Herausforderung möglich sind! Verwenden Sie mathematische Operationen für C=1/ E=2oder C=2/ E=3wie es die obere Antwort tut; using C=0/ E=1with 10^(n-1); Verwenden von C=0/ E=.durch Dezimalformatierung 0.0; Verwendung C=1/ E=-durch Nutzung -1; usw. usw. So viele einzigartige Möglichkeiten für eine Herausforderung, die zunächst so auf den Punkt gebracht wurde. Schade, dass ich nur einmal +1 geben kann. ;)
Kevin Cruijssen

Antworten:

29

Python 2, 29 26 Bytes

lambda n:10**n*97/30-1/n*9

Beispiel:

>>> f(1)
23
>>> f(2)
323
>>> f(3)
3233
orlp
quelle
Sie müssen 21 im Fall n = 1
ausgeben
1
@ DanielIndie :( behoben, aber jetzt ist es hässlich.
Orlp
Immer noch eine sehr kreative Lösung :)
Fehler
1
@orlp sorry :) aber immer noch eine gute Lösung :)
DanielIndie
3
10**n*97/30-1/n*9speichert ein weiteres Byte, geben f(5) == 323333usw.
Lynn
28

Python 3, 35 33 Bytes

lambda N:'C'*(N>1)+'EC'+'C'*(N-2)

Bearbeiten: Löschen , f=um 2 Bytes zu sparen, dank der Erinnerung von @dylnan .

Probieren Sie es online!

So visualisieren Sie es:

lambda N:'🚘'*(N>1)+'🚔🚘'+'🚘'*(N-2)

Ausgabe:

1 🚔🚘
2 🚘🚔🚘
3 🚘🚔🚘🚘
4 🚘🚔🚘🚘🚘
5 🚘🚔🚘🚘🚘🚘
6 🚘🚔🚘🚘🚘🚘🚘

Probieren Sie 🚔 online!

Python 3, 40 Bytes

Eine einfache Lösung:

lambda N:str(10**N).replace('100','010')

Probieren Sie es online!

Guoyang Qin
quelle
2
Ich denke, die "einfache" Lösung hat unnötige Leerzeichen nachlambda N:
jemand
@jemandem war ich das nicht bewusst, danke.
Guoyang Qin
14

Japt, 5 4 Bytes

Verwendet qfür Autos und +für den Flur.

ç¬iÄ

Versuch es

Wir danken Oliver, der gleichzeitig mit mir 4 Bytes weniger gespielt hat.


Erläuterung

Eine kurze Lösung, aber eine knifflige Erklärung!

Das Einfachste zuerst: çWenn die Methode auf eine Ganzzahl angewendet wird, wird das Zeichenfolgenargument so oft wiederholt. Die iMethode akzeptiert 2 Argumente ( s& n) und fügt sam Index nder Zeichenfolge ein, auf die sie angewendet wird.

Erweitern der 2 Unicode - Verknüpfungen verwendet , gibt uns çq i+1, die, wenn sie transpiled JS wird U.ç("q").i("+",1), wo Uder Eingang ist. Also wiederholen wir q Umal und fügen dann ein +bei Index 1 ein.

Der letzte Trick ist , dass dank Japt Index Verpackung, wenn U=1, iwird das Einfügen +am Index 0, was Wert , den Sie füttern es n.

Zottelig
quelle
Ich wollte ç0 iQ1für 6 Bytes posten , aber es wäre besser, wenn Sie es verwenden.
Oliver
Danke, @Oliver. In der Zwischenzeit sind es jedoch nur noch 5 Bytes.
Shaggy
1
ç¬iÅfür 4 Bytes;) Ich habe Japt noch nie so oft missbraucht.
Oliver
Ich war gerade dabei, das gleiche mit zu tun, Äanstatt Å:)
Shaggy
7

R, 50 Bytes

-11 danke an Giuseppe!

pryr::f(cat("if"(x<2,12,c(21,rep(2,x-1))),sep=""))

Ausgänge 1 für Notfallkorridor und 2 für normale Fahrspuren

Mein Versuch, 61 Bytes

Hier ist nichts Besonderes zu sehen, aber lasst uns R auf die Anzeigetafel bringen =)

q=pryr::f(`if`(x<2,cat("EC"),cat("CE",rep("C",x-1),sep="")))

Verwendungszweck:

q(5)
CECCCC
Bestimmt
quelle
Speichern Sie 8 Bytes mit 21 = 12 + 9 und erzwingen Sie TRUE / FALSE auf 1/0 ohne if tio.run/##K/r/v6CossjKKk0jObFEw1JLI8/…
JayCe
6

Python 2, 30 29 28 Bytes

lambda n:`10/3.`[1/n:n-~1/n]

Drucken Sie 3anstelle von Cund .anstelle von E.

Erläuterung:

Probieren Sie es online aus.

lambda n:    # Method with integer parameter and string return-type
  `10/3.`    #  Calculate 10/3 as decimal (3.333333333) and convert it to a string
  [1/n       #   Take the substring from index 1 if `n=1`, 0 otherwise
   ,n-~      #   to index `n+1` +
       1/n]  #    1 if `n=1`, 0 otherwise

Python 2, 33 32 31 29 28 Bytes

lambda n:1%n-1or'1-'+'1'*~-n

Druckt 1anstelle von Cund -anstelle von E.

-2 Bytes dank @ovs .
-1 Byte dank @xnor .

Erläuterung:

Probieren Sie es online aus.

lambda n:    # Method with integer parameter and string return-type
  1%n-1      #  If `n` is 1: Return '-1'
  or         #  Else:
    '1-'+    #   Return '1-', appended with:
    '1'*~-n  #   `n-1` amount of '1's
Kevin Cruijssen
quelle
1
Deines 10/3scheitert um 17
Jo King am
1
@JoKing Ich habe gerade mit OP geklärt, und er sagte: "Die Verwendung eines eingebauten Integer-Typs ist ausreichend. ", Was bedeutet, n=16dass in diesem Fall , wenn Ihr eingebauter Integer 64-Bit ist, ausreicht, oder in diesem Fall, n=16wenn der Dezimalwert "kann. Es reicht aus, wenn Sie nicht mehr als 15 Dezimalstellen eingeben. (Gleiches gilt für viele andere Antworten in Sprachen mit willkürlichen
Zahlengrößen
5

Pyth, 10 9 8 Bytes

Xn1Q*NQZ

Verwendet 0den Notfall Korridor zu bezeichnen , und ".
Probieren Sie es hier aus

Erläuterung

Xn1Q*NQZ
    *NQ     Make a string of <input> "s.
 n1Q         At index 0 or 1...
X      Z    ... Insert 0.
Gedächtnisstütze
quelle
5

Brainfuck , 42 Bytes

,[[>]+[<]>-]>>[<]<[<]>+>+<[<-[--->+<]>.,>]

Probieren Sie es online!

Nimmt Eingaben als Zeichencode und Ausgaben als Vnormale Spuren und Wals gelöschte Spuren. (Zum einfachen Testen empfehle ich, die ,durch eine Anzahl von +s zu ersetzen. )

Wie es funktioniert:

,[[>]+[<]>-] Turn input into a unary sequence of 1s on the tape
>>[<]<[<]    Move two cells left of the tape if input is larger than 1
             Otherwise move only one space
>+>+<        Add one to the two cells right of the pointer
             This transforms:
               N=1:  0 0' 1 0  -> 0 2' 1 0
               N>1:  0' 0 1 1* -> 0 1' 2 1*
[<-[--->+<]>.,>]  Add 86 to each cell to transform to Ws and Vs and print
Scherzen
quelle
5

Oktave (MATLAB *), 31 30 28 27 22 Bytes

@(n)'CE'(1+(n>1==0:n))

Probieren Sie es online!

Das Programm funktioniert wie folgt:

@(n)                   %Anonymous function to take input
            n>1==0:n   %Creates [1 0] if n is 1, or [0 1 (0 ...)] otherwise
         1+(        )  %Converts array of 0's and 1's to 1-indexed
    'CE'(            ) %Converts to ASCII by addressing in string

Der hier verwendete Trick besteht darin, das Seed-Array von XNOR 0:nmit einer Prüfung zu versehen, ob die Eingabe größer als 1 ist. Das Ergebnis ist, dass für n>1den Seed ein logisches Array von konvertiert wird, [0 1 (0 ...)]während für n==1den Seed eine Invertierung erfolgt [1 0], um die erforderliche Inversion zu erzielen.

Der Rest ist nur die Umwandlung des Samens in eine Schnur mit genügend angehängten Autos.


(*) Die TIO-Verknüpfung enthält in den Fußzeilenkommentaren eine alternative Lösung für die gleiche Anzahl von Bytes, die in MATLAB und Octave verwendet werden kann. Sie führt jedoch zu einer Folge von '0' und '1' anstelle von 'E' und ' C '. Der Vollständigkeit halber ist die Alternative:

@(n)['' 48+(n>1==0:n)]

  • 1 Byte mit n==1~=0:1anstatt mit gespeichert 0:1~=(n<2). ~=hat Vorrang vor <, daher die ursprünglichen Klammern, aber es scheint, dass ~=und ==in der Reihenfolge des Erscheinens behandelt werden, so dass wir durch den Vergleich mit 1 ein Byte speichern können.

  • 2 Bytes gespart, indem geändert wurde, wo die Negation von 2:ndurchgeführt wird. Dies erspart ein Paar Klammern. Wir müssen auch das to ändern ~=, ==um der Tatsache Rechnung zu tragen, dass es später negiert wird.

  • 1 Byte mit <erneut gespeichert . Es stellt sich heraus, dass <das ==immerhin den gleichen Vorrang hat . Das Voranstellen der <Berechnung ==sichert die korrekte Ausführungsreihenfolge.

  • 5 Bytes gespart, indem nicht zwei separate Arrays erstellt wurden. Anstatt sich auf die Tatsache zu verlassen, dass der XNOR-Vergleich sowieso einen einzelnen Bereich in logische Werte umwandelt.

Tom Carpenter
quelle
Sehr klug :-)
Stewie Griffin
@ StewieGriffin Danke :). Es ist gelungen, weitere 5 Bytes mehr abzuschlagen.
Tom Carpenter
4

C (gcc), 39 Bytes

f(n){printf("70%o"+!n,7|(1<<3*--n)-1);}

Probieren Sie es online!

Ausgeliehen und adaptiert den printf-Trick aus ErikFs Antwort .

kwc
quelle
2
Willkommen auf der Seite und schönen ersten Beitrag!
Caird Coinheringaahing
4

Python 3, 32 Bytes

lambda n:f"{'CE'[n<2:]:C<{n+1}}"

Probieren Sie es online!

Verwendet einen F-String-Ausdruck, um entweder zu formatieren, 'E'oder wird 'CE'rechts 'C'damit aufgefüllt, damit er die Breite von hat n+1.

f"{          :       }    a Python 3 f-string expression.
   'CE'[n<2:]             string slice based on value of n.
             :            what to format is before the ':' the format is after.
              C           padding character
               <          left align
                {n+1}     minimum field width based on n
RootTwo
quelle
4

Brain-Flak , 100 66 Bytes

{({}[()]<((((()()()()){}){}){}())>)}{}(({}<>)())<>{<>{({}<>)<>}}<>

Probieren Sie es online!

Verwendet "als Notspur und !als normale Fahrspur.

Scherzen
quelle
+1 für die Verwendung dieser Sprache aller Dinge. XD
Alex
2
@ Alex, nun, Brain-Flak ist die Sprache des Monats April
Jo King
Ernsthaft oder Ende April Scherz? Wo werden die Sprachen des Monats gewählt?
Alex
@ Alex Nominierungen und Abstimmung hier , und dann wird ein Monat-spezifischer Beitrag wie dieser gemacht
Kamil Drakari
Oh, es ist auf dieser Plattform. Ich verstehe, danke! :-)
Alex
4

05AB1E , 7 Bytes

Î>∍1I≠ǝ

Probieren Sie es online!

0 ist C und 1 ist E.

Erläuterung

Î>          # Push 0 and input incremented            -- [0, 4]
  ∍         # Extend a to length b                    -- [0000]
   1I≠      # Push 1 and input falsified (input != 1) -- [0000, 1, 1] 
      ǝ     # Insert b in a at location C             -- [0100]
            # Implicit display
Kaldo
quelle
Oh du schlauer Fuchs. $<×TìsiRdachte ich.
Magic Octopus Urn
@MagicOctopusUrn Das ist ein interessanter Ansatz! Ich habe auch über die "Wenn"
-Konstruktion nachgedacht,
In der neuen Version von 05AB1E 1Ikann bis Golf gespielt werden $.
Kevin Cruijssen
5 Bytes (funktioniert auch in der älteren Version).
Kevin Cruijssen
4

APL (Dyalog Unicode) , 21 17 16 Bytes

(-≠∘1)⌽'E',⍴∘'C'

Probieren Sie es online!

Dank an Erik für das Speichern von 4 Bytes und Adám für ein weiteres Byte.

Wie?

(-≠∘1)⌽'E',⍴∘'C'  Tacit function
           ⍴∘'C'  Repeat 'C', according to the input
       'E',       Then append to 'E'
                 And rotate
    1)            1
  ≠∘              Different from the input? Returns 1 or 0
(-                And negate. This rotates 0 times if the input is 1, and once if not.
J. Sallé
quelle
1
(⍵>1)muss nicht in Klammern stehen Und Sie können 4 Bytes mit einer stillschweigenden Funktion speichern: (⊢×1<⊢)⌽'E',⍴∘'C'.
Erik der Outgolfer
@EriktheOutgolfer danke! Ich hatte keine Zeit, nach dem Posten stillschweigend zu gehen, weil ich heute eine Klasse hatte. Ich werde bearbeiten, wenn ich nach Hause komme.
J. Sallé
15 Bytes mit ⎕io = 0:'CE'[1(≠=∘⍳+)⎕]
ngn
@ngn Ich kann nicht mal ... Kannst du mir einen TIO-Link mit den Testfällen besorgen? Kann nicht scheinen, es zum Laufen zu bringen ...
J. Sallé
4

Haskell , 35 33 32 Bytes

2 Bytes dank Angs gespeichert, 1 Byte dank Lynn gespeichert

(!!)$"":"EC":iterate(++"C")"CEC"

Probieren Sie es online!

Haskell , 32 30 29 Bytes

Dies ist nullindiziert, sodass es der Herausforderung nicht entspricht

g=(!!)$"EC":iterate(++"C")"CEC"

Probieren Sie es online!

Haskell , 30 Bytes

Dies funktioniert nicht, da die Ausgabe eine Zeichenfolge sein muss

f 1=21
f 2=121
f n=10*f(n-1)+1

Probieren Sie es online!

Hier verwenden wir Zahlen anstelle von Zeichenketten, 2für den Notfallkorridor, 1für die Autos. Wir können a 1zum Ende hinzufügen , indem wir mit 10 multiplizieren und addieren 1. Das ist billiger, weil wir nicht für alle Bytes für Verkettung und String-Literale bezahlen müssen.

Es wäre billiger zu verwenden 0als, 1aber wir brauchen führende Nullen, die am Ende abgeschnitten werden.

Weizen-Assistent
quelle
((blah)!!)kann werden (!!)$blah, um ein Byte in Ihren ersten beiden Antworten zu speichern.
Lynn
@Lynn Danke! Ich habe das früher versucht, aber ich muss die Bytes falsch gezählt haben.
Weizen-Assistent
4

Python 3 , 30 29 Bytes

lambda n:"CEC"[~n:]+"C"*(n-2)

Probieren Sie es online!

OK, es gibt bereits viele Python-Antworten, aber ich denke, dies ist der erste Sub-30-Byte unter denen, die immer noch "E" - und "C" -Zeichen anstelle von Zahlen verwenden.

Kirill L.
quelle
3

Stax , 7 Bytes

ü♣àj#F 

Führen Sie es aus und debuggen Sie es

Dies verwendet die Zeichen "0" und "1". Dies funktioniert, weil sich beim Drehen eines Arrays der Größe 1 nichts ändert.

Ausgepackt, ungolfed und kommentiert sieht es so aus.

1]( left justify [1] with zeroes. e.g. [1, 0, 0, 0]
|)  rotate array right one place
0+  append a zero
$   convert to string

Führen Sie dieses aus

rekursiv
quelle
3

Gelee , 6 Bytes

⁵*ṾṙỊṙ

Zeigt die Fahrspuren als 0 und die Notspur als 1 an .

Probieren Sie es online!

Wie es funktioniert

⁵*ṾṙỊṙ  Main link. Argument: n

⁵*      Compute 10**n.
  Ṿ     Uneval; get a string representation.
   ṙỊ   Rotate the string (n≤1) characters to the left.
     ṙ  Rotate the result n characters to the left.
Dennis
quelle
3

Whitespace , 141 104 103 Bytes

[S S S N
_Push_0][S N
S _Duplicate_0][T   N
T   T   _Read_STDIN_as_number][T    T   T   _Retrieve][S S S T  S N
_Push_2][T  S S T   _Subtract][S N
S _Duplicate_input-2][N
T   T   N
_If_negative_Jump_to_Label_-1][S S S T  N
_Push_1][S N
S _Duplicate_1][T   N
S T _Print_as_integer][S S T    T   N
_Push_-1][T N
S T _Print_as_integer][T    S S T   _Subtract][N
S S T   N
_Create_Label_LOOP][S N
S _Duplicate][N
T   T   S N
_If_negative_Jump_to_EXIT][S S S T  N
_Push_1][S N
S _Duplicate_1][T   N
S T _Print_as_integer][T    S S T   _Subtract][N
S N
T   N
_Jump_to_LOOP][N
S S N
_Create_Label_-1][T N
S T _Print_as_integer][N
S S S N
_Create_Label_EXIT]

Buchstaben S(Leerzeichen), T(Tabulator) und (Zeilenvorschub) werden Nnur als Hervorhebungen hinzugefügt.
[..._some_action]nur als Erklärung hinzugefügt.

Druckt 1anstelle von Cund -anstelle von E.

-1 Byte dank @JoKing, indem die Verwendung von 1und -1anstelle von 0und vorgeschlagen wird 1.

Erklärung im Pseudocode:

Integer i = STDIN-input as integer - 2
If i is negative (-1):
  Print i (so print "-1")
Else:
  Print "1-1"
  Start LOOP:
    If i is negative:
      EXIT program
    Print "1"
    i = i-1
    Go to the next iteration of the LOOP

Beispiel läuft:

Eingang: 1

Command   Explanation                 Stack      Heap    STDIN   STDOUT   STDERR

SSSN      Push 0                      [0]
SNS       Duplicate top (0)           [0,0]
TNTT      Read STDIN as integer       [0]        {0:1}   1
TTT       Retrieve heap at 0          [1]        {0:1}
SSSTSN    Push 2                      [1,2]      {0:1}
TSST      Subtract top two            [-1]       {0:1}
SNS       Duplicate input-2           [-1,-1]    {0:1}
NTSN      If neg.: Jump to Label_-1   [-1]       {0:1}
NSSN      Create Label_-1             [-1]       {0:1}
TNST      Print top as integer        []         {0:1}           -1
NSSSN     Create Label_EXIT           []         {0:1}
                                                                         error

Probieren Sie es online aus (nur mit Leerzeichen, Tabulatoren und Zeilenumbrüchen).
Stopps mit Fehler: Exit nicht definiert.

Eingang: 4

Command   Explanation                   Stack      Heap    STDIN   STDOUT   STDERR

SSSN      Push 0                        [0]
SNS       Duplicate top (0)             [0,0]
TNTT      Read STDIN as integer         [0]        {0:4}   4
TTT       Retrieve heap at 0            [4]        {0:4}
SSSTSN    Push 2                        [4,2]      {0:4}
TSST      Subtract top two              [2]        {0:4}
SNS       Duplicate input-2             [2,2]      {0:4}
NTSN      If neg.: Jump to Label_-1     [2]        {0:4}
SSSTN     Push 1                        [2,1]      {0:4}
SNS       Duplicate top (1)             [2,1,1]    {0:4}
TNST      Print as integer              [2,1]      {0:4}           1
SSTTN     Push -1                       [2,1,-1]   {0:4}
TNST      Print as integer              [2,1]      {0:4}           -1
TSST      Subtract top two              [1]        {0:4}
NSSTN     Create Label_LOOP             [1]        {0:4}
 SNS      Duplicate top (1)             [1,1]      {0:4}
 NTTSN    If neg.: Jump to Label_EXIT   [1]        {0:4}
 SSSTN    Push 1                        [1,1]      {0:4}
 SNS      Duplicate top (1)             [1,1,1]    {0:4}
 TNST     Print as integer              [1,1]      {0:4}           1
 TSST     Subtract top two              [0]        {0:4}
 NSNTN    Jump to Label_LOOP            [0]        {0:4}

 SNS      Duplicate top (0)             [0,0]      {0:4}
 NTTSN    If neg.: Jump to Label_EXIT   [0]        {0:4}
 SSSTN    Push 1                        [0,1]      {0:4}
 SNS      Duplicate top (1)             [0,1,1]    {0:4}
 TNST     Print as integer              [0,1]      {0:4}           1
 TSST     Subtract top two              [-1]       {0:4}
 NSNTN    Jump to Label_LOOP            [-1]       {0:4}

 SNS      Duplicate top (-1)            [-1,-1]    {0:4}
 NTTSN    If neg.: Jump to Label_EXIT   [-1]       {0:4}
NSSSN     Create Label_EXIT             [-1]       {0:4}
                                                                            error

Probieren Sie es online aus (nur mit Leerzeichen, Tabulatoren und Zeilenumbrüchen).
Stopps mit Fehler: Exit nicht definiert.

Kevin Cruijssen
quelle
Wäre es einfacher, die freie Spur auszudrucken, als -wenn Sie das Drucken missbrauchen würden -1?
Jo King
@JoKing Leider würde es länger dauern. Probieren Sie es online 112 Bytes. Es hat sich tatsächlich geändert push_0; print_as_integer; push_1; print_as_integerzu push_-1; print_as_integer, aber im Gegenzug die beiden push_0; print_as_integerwerden ersetzt durch push_45; print_as_character, wo push_0= SSSN, und push_45= SSSTSTTSTN. Und ein zusätzliches push_45muss hinzugefügt werden, denn für die Eingabe drucke n=1ich jetzt das Duplikat, das 0ich bereits auf dem Stapel hatte, so dass ich nicht noch 0einmal drücken musste, weil das 0bereits auf dem Stapel war.
Kevin Cruijssen
Ich wollte -ersetzen 1und 1ersetzen 0. Dann würde vermeiden Sie 45 zu schieben ist, und soweit ich das sagen kann , zum Drucken einer Zahl in der ersten Hälfte des bedingten würde sparen, aber leicht Kosten erhöhen auf 1 statt 0 schieben Check out my Gol> <> Antwort für Ein Beispiel für die Ausgabe, die ich meine
Jo King
1
@JoKing Ich habe versucht, es zu implementieren, aber ich landete bei 107 Bytes (hier ist der gleiche Code mit zusätzlichen Hervorhebungen und Erläuterungen ). Es spart zwar print_-1Druck 0und statt 1, aber ein zusätzlicher print_-1ist außerhalb der Schleife notwendig. BEARBEITEN: Konnte es durch Ändern auf 103 Bytes reduzieren subtract_1; if_0_jump_to_ONE; push_-1; print_integerzu subtract_2; if_negative_jump_to_ONE; print_integer, weil -1 dann schon auf dem Stack ist. Also danke für -1 Byte. :)
Kevin Cruijssen
3

AutoHotkey 32 Bytes

Ersetzt den Buchstaben "C" durch "EC", es sei denn, der Wert von C> 1, sendet er "CEC" und beendet die App.

::C::EC
:*:CC::CEC^c
^c::ExitApp

C => EC
CC => CEC beendet dann das Programm. Alle weiteren Cs werden nach dem Beenden des Programms eingegeben.

nelsontruran
quelle
3

APL + WIN, 20 16 Bytes

4 Bytes gespart dank Adám

Fordert zur Eingabe der Ganzzahl n auf:

(-2≠⍴n)⌽n←1⎕/⍕10

1 für Notfallkorridor o für Autos.

Graham
quelle
16:(-2≠⍴n)⌽n←1⎕/⍕10
Adám
@ Adám Danke. Ich sehe, dass der Trick von ngn, 1⎕ / ⍕, nützlich ist. Eine für die Redewendung Liste?
Graham
Über welche Redewendung sprechen Sie?
Adám
@ Adám Die beiden Redewendungen, die ich am häufigsten verwende, sind Finnapl und APL2idioms
Graham
Ich bin mir nicht sicher, was hier so idiomatisch ist. Es ist einfach nur Golf. Wie auch immer, meine Redewendung Liste könnte Sie interessieren.
Adám
3

MathGolf , 7 6 Bytes

ú░\┴╜╪

Probieren Sie es online aus.

Ausgabe 1für Eund 0für C.

Erläuterung:

ú         # 10 to the power of the (implicit) input
          #  i.e. 1 → 10
          #  i.e. 4 → 10000
         # Convert it to a string
          #  i.e. 10 → "10"
          #  i.e. 10000 → "10000"
  \       # Swap so the (implicit) input is at the top of the stack again
   ┴╜     # If the input is NOT 1:
         #  Rotate the string once towards the right
          #   i.e. "10000" and 4 → "01000"
          # Output everything on the stack (which only contains the string) implicitly
Kevin Cruijssen
quelle