Zrób awaryjny korytarz

46

W niektórych krajach istnieją zalecenia lub przepisy dotyczące tworzenia korytarzy ratunkowych na ulicach, które mają wiele pasów ruchu w jednym kierunku. (W dalszej części rozważamy tylko pasy ruchu w kierunku, w którym podróżujemy). Są to zasady obowiązujące w Niemczech:

  • Jeśli jest tylko jeden pas, wszyscy powinni jechać w prawo, tak aby pojazdy ratunkowe mogły przejechać po lewej stronie.
  • Jeśli są dwa lub więcej pasów, samochody na najbardziej lewym pasie powinny jechać w lewo, a wszyscy inni powinni jechać w prawo.

Wyzwanie

Biorąc pod uwagę liczbę N>0zwykłych pasów, określ układ pasów po utworzeniu korytarza awaryjnego przy użyciu ciągu znaków N+1ASCII. Możesz użyć dowolnych dwóch znaków od kodu ASCII 33, do 126jednego, oznaczającego korytarz awaryjny, a drugiego oznaczającego samochody. Dopuszczalne są spacje końcowe lub wiodące, łamanie linii itp.

Przykłady

Tutaj korzystamy Ez korytarza awaryjnego i Csamochodów.

N  Output
1  EC
2  CEC
3  CECC
4  CECCC
5  CECCCC
6  CECCCCC
   etc
wada
źródło
18
Nie zakocham się w tym! Po prostu szukasz własnej linii, która prześlizgnie się przez twój podstępny wąż.
orlp
16
@PmanAce Naprawdę nie sądzę, że flawr potrzebuje naszej pomocy w tym: P
orlp
8
+1, ponieważ tak naprawdę działa w Niemczech. Był w sytuacji w ostatni weekend.
ElPedro
10
@ msh210 Myślę, że zdjęcia na niemieckiej stronie WP najlepiej to wyjaśniają.
flawr
9
Wiesz, początkowo wyglądało to na konkretne wyzwanie z Ci E, ale istnieje wiele fajnych podejść do tego wyzwania! Używanie operacji matematycznych do C=1/ E=2lub C=2/ E=3jak robi najlepsza odpowiedź; using C=0/ E=1with 10^(n-1); używając C=0/ E=.przez format dziesiętny 0.0; korzystanie C=1/ E=-przez wykorzystanie -1; itp. itd. Tak wiele unikalnych możliwości wyzwania, które na pierwszy rzut oka wyglądały tak trafnie. Szkoda, że ​​mogę dać +1 tylko raz. ;)
Kevin Cruijssen

Odpowiedzi:

29

Python 2, 29 26 bajtów

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

Przykład:

>>> f(1)
23
>>> f(2)
323
>>> f(3)
3233
orlp
źródło
musisz
wygenerować
1
@DanielIndie :( naprawiono, ale teraz jest brzydka.
lub
Wciąż bardzo kreatywne rozwiązanie :)
flawr
1
@orlp przepraszam :) ale nadal dobre rozwiązanie :)
DanielIndie
3
10**n*97/30-1/n*9oszczędza kolejny bajt, dając f(5) == 323333itp.
Lynn,
28

Python 3, 35 33 bajtów

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

Edycja: upuszczanie, f=aby zapisać 2 bajty, dzięki przypomnieniu @dylnan .

Wypróbuj online!

Aby to zwizualizować:

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

Wynik:

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

Spróbuj 🚔 online!

Python 3, 40 bajtów

Proste rozwiązanie:

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

Wypróbuj online!

Guoyang Qin
źródło
2
Myślę, że „proste” rozwiązanie ma niepotrzebne białe znaki polambda N:
ktoś
@someone Nie wiedziałem o tym, dzięki.
Guoyang Qin,
14

Japt, 5 4 bajtów

Zastosowania qdo samochodów i +do korytarza.

ç¬iÄ

Spróbuj

Podziękowania dla Olivera, który grał o 4 bajty w tym samym czasie, co ja.


Wyjaśnienie

Krótkie rozwiązanie, ale trudne wyjaśnienie!

Najpierw proste: çmetoda zastosowana do liczby całkowitej powtarza swój argument łańcuchowy tyle razy. iMetoda trwa 2 argumenty ( si n) i wkładki sna indeks nłańcucha to zaaplikowana.

Rozszerzenie 2 używanych skrótów Unicode daje nam çq i+1, co po transpilacji do JS staje się U.ç("q").i("+",1), gdzie Ujest wejście. Powtarzamy q Uczasy, a następnie wstawiamy wartość +indeksu 1.

Ostateczna Sztuką jest, że dzięki opakowaniu indeksu Japt jest, kiedy U=1, ibędzie wstawić +w indeksie 0, niezależnie od wartości karmić go n.

Kudłaty
źródło
Zamierzałem wysłać post ç0 iQ1za 6 bajtów, ale byłoby lepiej, gdybyś go użył.
Oliver,
Dzięki, @Oliver. Tymczasem zmniejszyłem go do 5 bajtów.
Kudłaty
1
ç¬iÅza 4 bajty;) Nigdy tak bardzo nie wykorzystywałem Japt.
Oliver,
Właśnie miałem zrobić to samo z Äzamiast Å:)
Kudłaty
7

R, 50 bajtów

-11 dzięki Giuseppe!

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

Wyjścia 1 dla korytarza awaryjnego i 2 dla normalnych pasów ruchu

Moja próba, 61 bajtów

Nic szczególnego do zobaczenia, ale zdobądźmy R na tablicy wyników =)

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

Stosowanie:

q(5)
CECCCC
Ukarane
źródło
Zaoszczędź 8 bajtów, używając 21 = 12 + 9 i zmuszając PRAWDA / FAŁSZ do 1/0 bez if tio.run/##K/r/v6CossjKKk0jObFEw1JLI8/…
JayCe
6

Python 2, 30 29 28 bajtów

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

Drukuj 3zamiast Ci .zamiast E.

Wyjaśnienie:

Wypróbuj online.

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 bajtów

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

Drukuje 1zamiast Ci -zamiast E.

-2 bajty dzięki @ovs .
-1 bajt dzięki @xnor .

Wyjaśnienie:

Wypróbuj online.

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
źródło
1
Twój 10/3zawodzi o 17
Jo King
1
@JoKing Właśnie wyjaśniłem za pomocą OP, a on powiedział: „ Wystarczy użyć wbudowanej liczby całkowitej. ”, Co oznacza, n=16że wystarczy , jeśli twoja liczba całkowita jest 64-bitowa, lub w tym przypadku, n=16gdy wartość dziesiętna może „ t domyślnie zawiera więcej niż 15 cyfr dziesiętnych. (To samo dotyczy wielu innych odpowiedzi używających języków o dowolnych rozmiarach liczb, takich jak Java, C # .NET itp.)
Kevin Cruijssen
5

Pyth, 10 9 8 bajtów

Xn1Q*NQZ

Używa 0do oznaczenia korytarza awaryjnego i ".
Wypróbuj tutaj

Wyjaśnienie

Xn1Q*NQZ
    *NQ     Make a string of <input> "s.
 n1Q         At index 0 or 1...
X      Z    ... Insert 0.
Mnemoniczny
źródło
5

pieprzenie mózgu , 42 bajty

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

Wypróbuj online!

Pobiera dane wejściowe jako kod char, a dane wyjściowe jako Vnormalne linie i Wjako oczyszczony pas. (Aby łatwo przetestować, zalecam zastąpienie go ,liczbą +s)

Jak to działa:

,[[>]+[<]>-] 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
Jo King
źródło
5

Oktawa (MATLAB *), 31 30 28 27 22 bajtów

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

Wypróbuj online!

Program działa w następujący sposób:

@(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

Stosowana tutaj sztuczka polega na XNORowaniu tablicy nasion 0:nza pomocą sprawdzania, czy dane wejściowe są większe niż 1. W wyniku tego dla n>1nasion zostaje przekonwertowany na logiczną tablicę, [0 1 (0 ...)]podczas gdy dla n==1nasion zostaje odwrócony [1 0], osiągając niezbędną inwersję.

Reszta to po prostu przekształcanie nasion w sznurek z wystarczającą liczbą dołączonych samochodów.


(*) Łącze TIO zawiera w komentarzach w stopce alternatywne rozwiązanie dla tej samej liczby bajtów, które działa zarówno w MATLAB-ie, jak i Octave, ale powoduje sekwencję „0” i „1” zamiast „E” i „ DO'. Dla kompletności alternatywą jest:

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

  • Zaoszczędzono 1 bajt, używając n==1~=0:1raczej niż 0:1~=(n<2). ~=ma pierwszeństwo przed <, stąd oryginalne wsporniki, ale wydaje się, że ~=i ==są obsługiwane w kolejności pojawiania się więc przez porównanie z 1 możemy zapisać bajt.

  • Zaoszczędzono 2 bajty, zmieniając miejsce wykonywania negacji 2:n. To oszczędza parę nawiasów. Musimy również zmienić na, ~=aby ==uwzględnić fakt, że zostanie to później zanegowane.

  • Zapisano 1 bajt <ponownie. Okazuje się, że <ma taki sam priorytet jak w ==końcu. Umieszczenie <obliczeń przed ==prawidłową kolejnością wykonania.

  • Zaoszczędzono 5 bajtów, nie tworząc dwóch oddzielnych tablic. Zamiast tego opierając się na fakcie, że porównanie XNOR i tak przekształci pojedynczy zakres w logikę.

Tom Carpenter
źródło
Bardzo sprytny :-)
Stewie Griffin
@StewieGriffin Thanks :). Udało się zrzucić kolejne 5 bajtów więcej.
Tom Carpenter,
4

C (gcc), 39 bajtów

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

Wypróbuj online!

Pożyczył i dostosował sztuczkę printf z odpowiedzi ErikF .

kwc
źródło
2
Witamy na stronie i fajny pierwszy post!
caird coinheringaahing
4

Python 3, 32 bajty

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

Wypróbuj online!

Używa wyrażenia f-ciąg do formatu albo 'E'lub 'CE'wyściełane na prawo z 'C'tak ma szerokość 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
źródło
4

Brain-Flak , 100 66 bajtów

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

Wypróbuj online!

Wykorzystuje się "jako pas awaryjny i !normalny.

Jo King
źródło
+1 za używanie tego języka wszystkich rzeczy. XD
Alex
2
@Alex, Cóż, Brain-Flak jest językiem miesiąca kwietnia
Jo King
Poważnie czy pod koniec żartu Prima Aprilis? Gdzie wybiera się języki miesiąca?
Alex
@Alex Nominacje i głosowanie tutaj , a następnie publikowany jest post na określony miesiąc, taki jak ten
Kamil Drakari
Och, to jest na tej platformie. Rozumiem, dziękuję! :-)
Alex
4

05AB1E , 7 bajtów

Î>∍1I≠ǝ

Wypróbuj online!

0 oznacza C, a 1 oznacza E.

Wyjaśnienie

Î>          # 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
źródło
Och, ty chytry lisa. $<×TìsiRtak myślałem.
Magic Octopus Urn
@MagicOctopusUrn To ciekawe podejście! Pozostałem też przy konstrukcji „if”, ale wymaga ona co najmniej 3 bajtów, stąd potrzeba innego podejścia :-)
Kaldo
W nowej wersji 05AB1E 1Imożna grać w golfa $.
Kevin Cruijssen,
5 bajtów (działa również w starszej wersji).
Kevin Cruijssen,
4

APL (Dyalog Unicode) , 21 17 16 bajtów

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

Wypróbuj online!

Dzięki Erikowi za zapisanie 4 bajtów i Adámowi za kolejny bajt.

W jaki sposób?

(-≠∘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é
źródło
1
(⍵>1)nie musi być w nawiasach. I można zapisać 4 bajty z ukrytej funkcji: (⊢×1<⊢)⌽'E',⍴∘'C'.
Erik the Outgolfer
@EriktheOutgolfer dzięki! Po wysłaniu nie miałem czasu na milczenie, ponieważ miałem dziś klasę. Będę edytować, kiedy wrócę do domu.
J. Sallé,
15 bajtów z ⎕io = 0:'CE'[1(≠=∘⍳+)⎕]
ngn
@ngn Nie mogę nawet ... czy możesz dostać link do TIO ze skrzynkami testowymi? Nie wydaje się, żeby działało ...
J. Sallé,
4

Haskell , 35 33 32 bajty

2 bajty zapisane dzięki Angs, 1 bajt zapisany dzięki Lynn

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

Wypróbuj online!

Haskell , 32 30 29 bajtów

Jest indeksowany na zero, więc nie jest zgodny z wyzwaniem

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

Wypróbuj online!

Haskell , 30 bajtów

To nie działa, ponieważ dane wyjściowe muszą być ciągiem

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

Wypróbuj online!

W tym przypadku używamy liczb zamiast ciągów znaków 2w korytarzu ratunkowym 1w samochodach. Możemy dodać 1do końca, mnożąc przez 10 i dodając 1. Jest to tańsze, ponieważ nie musimy płacić za wszystkie bajty konkatenacji i literałów łańcuchowych.

Byłoby tańsze w użyciu 0zamiast, 1ale potrzebujemy zer wiodących, które ostatecznie zostają usunięte.

Kreator pszenicy
źródło
((blah)!!)można (!!)$blahzapisać bajt w pierwszych dwóch odpowiedziach.
Lynn,
@Lynn Thanks! Próbowałem to zrobić wcześniej, ale musiałem źle przeliczyć bajty.
Wheat Wizard
4

Python 3 , 30 29 bajtów

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

Wypróbuj online!

OK, jest już wiele odpowiedzi na Python, ale myślę, że jest to pierwszy sub-30 bajtów wśród tych, którzy nadal używają znaków „E” i „C” zamiast liczb.

Kirill L.
źródło
3

Stax , 7 bajtów

ü♣àj#F 

Uruchom i debuguj

Używa to znaków „0” i „1”. Działa to, ponieważ po obróceniu tablicy o rozmiarze 1 nie zmienia się.

Rozpakowane, niepolowane i skomentowane, wygląda to tak.

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

Uruchom ten

rekurencyjny
źródło
3

Galaretka , 6 bajtów

⁵*ṾṙỊṙ

Wyświetla pasy samochodu jako 0 , a pas awaryjny jako 1 .

Wypróbuj online!

Jak to działa

⁵*ṾṙỊṙ  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
źródło
3

Biała spacja , 141 104 103 bajtów

[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]

Litery S(spacja), T(tab) i N(nowa linia) dodane tylko jako wyróżnienia.
[..._some_action]dodano tylko jako wyjaśnienie.

Drukuje 1zamiast Ci -zamiast E.

-1 bajt dzięki @JoKing , sugerując użycie 1i -1zamiast 0i 1.

Objaśnienie w pseudo-kodzie:

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

Przykładowe przebiegi:

Wejście: 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

Wypróbuj online (tylko z surowymi spacjami, tabulatorami i nowymi wierszami).
Zatrzymuje się z błędem: nie zdefiniowano wyjścia.

Wejście: 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

Wypróbuj online (tylko z surowymi spacjami, tabulatorami i nowymi wierszami).
Zatrzymuje się z błędem: nie zdefiniowano wyjścia.

Kevin Cruijssen
źródło
Czy łatwiej byłoby wydrukować czysty pas, niż -nadużywając drukowania -1?
Jo King
@JoKing Niestety byłoby dłużej. Wypróbuj online 112 bajtów. Rzeczywiście się zmieniło push_0; print_as_integer; push_1; print_as_integerdo push_-1; print_as_integer, ale w zamian dwa push_0; print_as_integersą zastąpione przez push_45; print_as_character, gdzie push_0= SSSNi push_45= SSSTSTTSTN. I push_45trzeba też dodać dodatkowy, ponieważ dla danych wejściowych n=1drukuję teraz duplikat, 0który już miałem na stosie, więc nie musiałem 0ponownie naciskać, ponieważ 0był już na stosie.
Kevin Cruijssen
Miałem na myśli -jako wymiana 1i 1wymiana 0. Wówczas unikniesz wciskania przycisku 45 i, o ile mogę to stwierdzić, zaoszczędzisz na wydrukowaniu numeru w pierwszej połowie warunkowego, ale nieznacznie zwiększysz koszty po naciśnięciu 1 zamiast 0. Sprawdź moją Gol> <> odpowiedź mam na myśli przykład wyjścia
Jo King,
1
@JoKing Próbowałem go wdrożyć, ale skończyło mi się na 107 bajtach (tutaj jest ten sam kod z dodanym podświetleniem i objaśnieniem ). To rzeczywiście oszczędza print_-1zamiast drukowania 0i 1, ale print_-1konieczne jest dodatkowe poza pętlą. EDYCJA: Był w stanie zmniejszyć go do 103 bajtów , zmieniając subtract_1; if_0_jump_to_ONE; push_-1; print_integerdo subtract_2; if_negative_jump_to_ONE; print_integer, ponieważ -1 jest już wtedy na stosie. Dzięki za -1 bajt. :)
Kevin Cruijssen
3

AutoHotkey 32 bajty

Zamienia literę „C” na „EC”, chyba że C> 1, następnie wysyła „CEC” i wychodzi z aplikacji.

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

C => EC
CC => CEC następnie wychodzi z programu. Wszelkie dalsze Cs zostaną wprowadzone po wyjściu z programu.

nelsontruran
źródło
3

APL + WIN, 20 16 bajtów

4 bajty zapisane dzięki Adámowi

Monity o liczbę całkowitą n:

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

1 dla korytarza awaryjnego o dla samochodów.

Graham
źródło
16:(-2≠⍴n)⌽n←1⎕/⍕10
Adám
@ Adám Thanks. Widzę, że sztuczka ngn, 1⎕ / ⍕, przyda się. Jeden na listę idiomów?
Graham
O jakiej liście idiomów mówisz?
Adám
@ Adám Dwie najczęściej używane listy idiomów to Finnapl i APL2idioms
Graham
Nie jestem pewien, co jest tu takie idiomatyczne. To jest po prostu golfa. W każdym razie moja lista idiomów może cię zainteresować.
Adám
3

MathGolf , 7 6 bajtów

ú░\┴╜╪

Wypróbuj online.

Dane wyjściowe 1dla Ei 0dla C.

Wyjaśnienie:

ú         # 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
źródło