Acil Koridor Yapın


46

Bazı ülkelerde, yön başına birden çok şeridi olan sokaklarda acil durum koridorlarının nasıl oluşturulacağına dair tavsiyeler veya yasalar vardır. (Aşağıda, yalnızca seyahat ettiğimiz yöne giden şeritleri dikkate alıyoruz.) Almanya'da geçerli olan kurallar:

  • Yalnızca bir şerit varsa, herkes kurtarma araçlarının soldan geçebileceği şekilde sağa doğru ilerlemelidir.
  • İki veya daha fazla şerit varsa, soldaki arabalar en çok şerit sola gitmeli ve diğerleri sağa hareket etmelidir.

Meydan okuma

N>0Düzenli şerit sayısı göz önüne alındığında, bir N+1ASCII karakter dizisi kullanılarak acil bir koridor oluşturulduğunda şeritlerin düzenini çıkar . ASCII kodundan 33en fazla iki karakter 126, biri acil koridoru, diğeri arabaları belirtmek için kullanabilirsiniz. İzleyen veya giden boşluklara, satır sonlarına vb. İzin verilir.

Örnekler

Burada Eacil durum koridoru ve Carabalar için kullanıyoruz.

N  Output
1  EC
2  CEC
3  CECC
4  CECCC
5  CECCCC
6  CECCCCC
   etc

18
Bunun için düşmeyeceğim! Sinsi yılanın arasından geçmek için kendi şeridini arıyorsun.
orlp

16
@PmanAce Kusurun bunun için yardımımıza ihtiyacı olduğunu düşünmüyorum: P
orlp

8
+1 çünkü aslında Almanya'da çalışıyor. Geçen hafta sonu durumdaydı.
ElPedro

10
@ msh210 Alman WP sayfasındaki resimlerin en iyi açıkladığını düşünüyorum.
kusur

9
Başta bu konuya girme ile meydan benziyordu, biliyor Cve Efakat çok güzel bu meydan okuma için mümkün yaklaşımlar vardır! En üstteki cevap için C=1/ E=2veya C=2/ E=3benzeri matematiksel işlemleri kullanmak ; kullanma C=0/ E=1ile 10^(n-1); C=0/ kullanarak E=.ondalık biçimlendirme 0.0; kullanarak C=1/ E=-kullanarak -1; Vb. vb. İlk başta o kadar iyi görünen bir meydan okuma için pek çok benzersiz olasılık. Çok kötü, sadece bir kere + 1'leyebilirim. ;)
Kevin Cruijssen

Yanıtlar:


29

Python 2, 29 26 bayt

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

Örnek:

>>> f(1)
23
>>> f(2)
323
>>> f(3)
3233

n = 1 durumda 21 çıktı vermeniz gerekiyor
DanielIndie

1
@DanielIndie :( sabit ama şimdi çirkin.
orlp

Hala çok yaratıcı bir çözüm :)
kusur

1
@orlp :) üzgünüm ama yine de iyi bir çözüm :)
DanielIndie

3
10**n*97/30-1/n*9başka bir bayttan tasarruf yaparak f(5) == 323333vb. kaydeder .
Lynn

28

Python 3, 35 33 bayt

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

Düzenleme: @ dylnan hatırlatma f=sayesinde, 2 bayt kurtarmak için bırakarak .

Çevrimiçi deneyin!

Görselleştirmek için:

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

Çıktı:

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

🚔 çevrimiçi deneyin!

Python 3, 40 bayt

Basit bir çözüm:

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

Çevrimiçi deneyin!


2
Sanırım 'anlaşılır' çözümün lambda N:
biri

@ Birisi bunun farkında değildim, teşekkürler.
Guoyang Qin,


14

Japt, 5 4 bayt

Kullanımları qotomobiller için ve +koridor için.

ç¬iÄ

Dene

Yaptığım gibi aynı anda 4 bayt golf oynadı Oliver kredi.


açıklama

Kısa bir çözüm ama zor bir açıklama!

İlk önce basit şeyler: çBir tamsayıya uygulandığında yöntem, dizge değişkenini bu kadar tekrarlar. Bu iyöntem 2 argüman ( s& n) alır ve uygulandığı dizenin sdizinine ekler n.

Kullanılan 2 unicode kısayolunu genişletmek, bize çq i+1JS'ye aktarıldığında girişin U.ç("q").i("+",1)nerede Uolduğunu verir. Bu yüzden tekrarlıyoruz q Uve sonra +indeks 1'e bir ekliyoruz .

Nihai hüner yani Japt dizin sarma sayesinde, zaman U=1, iekleyecektir +endeksinde 0için yem ne olursa olsun değer n.


Ben göndermek için gidiyordu ç0 iQ16 bayt için, ancak bunu kullanılırsa daha iyi olurdu.
Oliver

Teşekkürler, @Oliver. Bu arada, 5 bayta indi.
Shaggy,

1
ç¬iÅ4 bayt için;) Japt'i hiç bu kadar suistimal etmedim.
Oliver

Ben de aynısını yapmak Äyerine aynısını yapmak üzereydim Å:)
Shaggy

7

R, 50 bayt

-11 Giuseppe'ye teşekkürler!

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

Acil koridor için 1 ve normal şerit için 2 çıkışı

Denemem, 61 bayt

Burada görmek için süslü bir şey yok, ama hadi skor tahtası üzerinde R alalım

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

Kullanımı:

q(5)
CECCCC

8 byte 21 = 12 + 9 kullanıyorum ve bir if olmadan 1/0 kadar doğru / yanlış zorlayarak kaydet tio.run/##K/r/v6CossjKKk0jObFEw1JLI8/...
Jayce


6

Python 2, 30 29 28 bayt

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

3Bunun yerine Cve .yerine yazdırın E.

Açıklama:

Çevrimiçi deneyin.

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 bayt

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

Baskılar 1yerine Cve -yerine E.

@Ovs sayesinde -2 bayt . @Xnor
sayesinde -1 bayt .

Açıklama:

Çevrimiçi deneyin.

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

1
Kişisel 10/3bir 17 yaşında başarısız
Jo Kral

1
@JoKing OP ile netleştim ve " Dahili bir tamsayı türü kullanmak yeterliydi " dedi . Bu, tamsayı dahili belleğinizin n=1664-bit olup olmadığını ya da bu durumda n=16ondalık değerin yeterli olabileceği anlamına gelir . t Varsayılan olarak 15'ten fazla ondalık basamak tutmak yeterlidir. (Java, C # .NET, vb. Gibi rasgele sayı boyutlarına sahip dilleri kullanan diğer cevapların çoğu için de geçerlidir)
Kevin Cruijssen

5

Pyth, 10 9 8 bayt

Xn1Q*NQZ

Kullanımları 0acil koridoru göstermek ve ".
Burada dene

açıklama

Xn1Q*NQZ
    *NQ     Make a string of <input> "s.
 n1Q         At index 0 or 1...
X      Z    ... Insert 0.

5

brainfuck , 42 bayt

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

Çevrimiçi deneyin!

Girdiyi char kodu olarak alır ve Vnormal şerit ve Wtemizlenen şerit olarak çıkar. (Kolayca test etmek için, ,birkaç +s ile değiştirilmesini öneririm )

Nasıl çalışır:

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

5

Octave (MATLAB *), 31 30 28 27 22 bayt

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

Çevrimiçi deneyin!

Program aşağıdaki gibi çalışır:

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

Burada kullanılan trick tohum dizisi XNORing olan 0:ngiriş 1 'den büyük ise, sonuç bir çek ile bunun için n>1tohum mantıksal bir dizi dönüştürülmüş olur [0 1 (0 ...)]için ise n==1tohum için tersine çevrilir [1 0]gerekli inversiyon elde.

Geri kalan kısım ise sadece tohumun yeterli miktarda eklenmiş arabaya sahip bir ipe dönüştürülmesidir.


(*) TIO linki altbilgiye yorumlarda, MATLAB ve Octave'de çalışan aynı bayt sayısı için alternatif bir çözüm sunar, ancak 'E' ve 'yerine' 0 've' 1 'dizileri ile sonuçlanır. C'. Bütünlüğü için, alternatif:

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

  • Kullanmak n==1~=0:1yerine 1 bayt kaydedildi 0:1~=(n<2). ~=önceliklidir <, dolayısıyla orjinal parantezler, ama görünüşe göre ele alınmış gibi görünüyor ~=ve ==1 ile kıyaslayarak bir bayt kurtarabiliriz.

  • Olumsuzluğun 2:ngerçekleştirildiği yeri değiştirerek 2 bayt kurtarıldı . Bu bir çift braketi kurtarır. Ayrıca değiştirmek zorunda ~=için ==daha sonra geçersiz hale gelecek olması için hesaba.

  • <Tekrar kullanarak 1 bayt kaydedildi . Sonuçta <aynı önceliğe sahip olduğu ortaya çıktı ==. Yerleştirme <önce hesaplama ==yürütmenin doğru sırasını temin eder.

  • İki ayrı dizi oluşturarak 5 bayt kurtardı. Bunun yerine, XNOR karşılaştırmasının tek bir aralığı mantıklı hale getireceği gerçeğine dayanarak.


Çok zekice :-)
Stewie Griffin

@StewieGriffin Teşekkürler :). Başka bir 5 byte daha atmak başardı.
Tom Carpenter



4

Python 3, 32 bayt

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

Çevrimiçi deneyin!

Kullanımları biçimine herhangi biri için bir f-string ifadesini 'E'veya 'CE'sağdaki yastıklı 'C'o genişliğinde yüzden 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

4

Brain-Flak , 100 66 bayt

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

Çevrimiçi deneyin!

Kullanımları "acil şeritli olarak ve !normal bir şerit olarak.


Her şeyin bu dilini kullanmak için +1. XD
Alex

2
@Alex, Well, Brain-Flak, Nisan ayının dilidir
Jo King

Cidden ya da geç April Fool'un şakası? Ayın dilleri nerede seçiliyor?
Alex,

@Alex Adaylıklar ve oylama burada , sonra bir ay özgü sonrası gibi yapılır bu bir
Kamil Drakari

Oh, bu platformda. Teşekkürler görüyorum! :-)
Alex,


4

05AB1E , 7 bayt

Î>∍1I≠ǝ

Çevrimiçi deneyin!

0, C ve 1, E'dir.

açıklama

Î>          # 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

Ah, kurnaz tilki. $<×TìsiRBen de öyle düşünüyordum.
Magic Octopus Urn

@ MagicOctopusUrn Bu ilginç bir yaklaşım! "If" in yapısını da
oyaladım

05AB1E'nin yeni sürümünde golf 1Ioynayabilir $.
Kevin Cruijssen,

5 bayt (ayrıca eski sürümde çalışır).
Kevin Cruijssen,

4

APL (Dyalog Unicode) , 21 17 16 bayt

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

Çevrimiçi deneyin!

4 byte'ı kaydettiği için Erik'e ve bir tane daha byte'a Adám'a teşekkürler.

Nasıl?

(-≠∘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.

1
(⍵>1)parantez içinde olması gerekmez. Ve eğer bir zımni fonksiyonu ile 4 bayt kaydedebilirsiniz: (⊢×1<⊢)⌽'E',⍴∘'C'.
Outgolfer Erik

@EriktheOutgolfer teşekkürler! Bugün bir ders aldığım için gönderimden sonra taciz yapacak vaktim olmadı. Eve geldiğimde düzenleyeceğim.
J. Sallé


⎕io = 0 olan 15 bayt:'CE'[1(≠=∘⍳+)⎕]
ngn

@ ngn bile yapamıyorum ... bana test durumlarıyla ilgili bir TIO bağlantısı kurabilir misiniz? İşe yaramaz gibi görünmüyor ...
J. Sallé

4

Haskell , 35 33 32 bayt

Angs sayesinde 2 bayt, Lynn sayesinde 1 bayt kaydedildi

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

Çevrimiçi deneyin!

Haskell , 32 30 29 bayt

Bu sıfır endeksli olduğundan meydan okumaya uymuyor

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

Çevrimiçi deneyin!

Haskell , 30 bayt

Bu işe yaramadı çünkü çıktı bir dizge olmalı

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

Çevrimiçi deneyin!

Burada 2, acil durum koridoru 1için, arabalar için teller yerine rakamları kullanıyoruz . Biz ekleyebilir 110 ile çarpılarak ve ekleyerek sonuna kadar 1. Bu daha ucuz çünkü birleştirme ve string değişmezleri için tüm baytlar için ödeme yapmak zorunda değiliz.

Yerine kullanmak daha ucuz olurdu 0, 1ancak kesilen parçaların başında kalan sıfırlara ihtiyacımız var.


((blah)!!)olabilir (!!)$blahİlk iki cevapları bir byte kaydedin.
Lynn

@Lynn Teşekkürler! Bunu daha önce yapmaya çalıştım ama baytları yanlış saymış olmalıyım.
Buğday Sihirbazı,

4

Python 3 , 30 29 bayt

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

Çevrimiçi deneyin!

Tamam, zaten çok fazla Python cevabı var, fakat bunun hala rakamlardan ziyade hala "E" ve "C" karakterlerini kullananlar arasındaki ilk 30 alt bayt olduğunu düşünüyorum.




3

Stax , 7 bayt

ü♣àj#F 

Koş ve hata ayıkla

Bu, "0" ve "1" karakterlerini kullanır. Bu çalışır çünkü 1 büyüklüğündeki bir diziyi döndürdüğünüzde değişmez.

Ambalajsız, ağzı açılmış ve yorumlanmış gibi görünüyor.

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

Bunu çalıştır




3

Jöle , 6 bayt

⁵*ṾṙỊṙ

Araba şeritlerini 0 , acil durum şeridini 1 olarak görüntüler .

Çevrimiçi deneyin!

Nasıl çalışır

⁵*ṾṙỊṙ  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.

3

Boşluk , 141 104 103 bayt

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

Harfler S(boşluk), T(sekme) ve N(yeni satır) yalnızca vurgulama olarak eklenmiştir.
[..._some_action]sadece açıklama olarak eklendi.

Baskılar 1yerine Cve -yerine E.

-1 bayt sayesinde @JoKing kullanımını öneren 1ve -1yerine 0ve 1.

Sahte kodda açıklama:

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

Örnek çalışır:

Giriş: 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

Çevrimiçi deneyin (yalnızca ham alanlar, sekmeler ve yeni satırlarla).
Hatalı durur: Çıkış tanımlanmadı.

Giriş: 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

Çevrimiçi deneyin (yalnızca ham alanlar, sekmeler ve yeni satırlarla).
Hatalı durur: Çıkış tanımlanmadı.


Net şeridi -yazdırmayı kötüye kullanmak gibi yazdırmak daha kolay olur -1mu?
Jo King,

@JoKing Maalesef daha uzun olurdu. Çevrimiçi 112 bayt deneyin . Gerçekten de değişti push_0; print_as_integer; push_1; print_as_integeriçin push_-1; print_as_integer, ancak karşılığında iki push_0; print_as_integerile değiştirilir push_45; print_as_character, nerede push_0= SSSN, ve push_45= SSSTSTTSTN. Üstelik bir ilave push_45daha eklenmeli, çünkü n=1şimdi girdi için 0şimdiden yığında bulunduğum kopyayı bastım, bu yüzden yığında olduğu için 0tekrar 0zorlamıyordum.
Kevin Cruijssen

-Değiştirmek 1ve 1değiştirmek demek istedim 0. O zaman 45'e basmaktan kaçınacaksınız ve bunu söyleyebildiğim kadarıyla koşullu ilk yarısında bir sayı yazdırırken tasarruf edersiniz, ancak 0 yerine 1 iterek maliyetleri biraz arttırırsınız. Gol> <> cevabını kontrol edin. Çıktının bir örneği demek istediğim
Jo King

1
@JoKing Uygulamayı denedim, ancak 107 bayta kadar çıktım (işte vurgu ve açıklama ile aynı kod ). Gerçekten de tasarruf print_-1baskı yerine 0ve 1ancak ek bir print_-1döngü dışında gereklidir. EDIT: Değiştirerek onu 103 bayta indirmeyi başardım subtract_1; if_0_jump_to_ONE; push_-1; print_integeriçin subtract_2; if_negative_jump_to_ONE; print_integer, çünkü -1 zaten yığında. Bu yüzden -1 bayt için teşekkürler. :)
Kevin Cruijssen

3

AutoHotkey 32 bayt

"C" harfini "EC" ile değiştirir, C> 1 miktarı yoksa "CEC" gönderir ve uygulamadan çıkar.

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

C => EC
CC => CEC daha sonra programdan çıkar. Program bittikten sonra diğer C'ler girilecektir.


3

APL + WIN, 20 16 bayt

Adám sayesinde 4 bayt kurtarıldı

N tamsayısı için bilgi istemi:

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

1 Acil durum koridoru o araçlar için o.


16:(-2≠⍴n)⌽n←1⎕/⍕10
Adâm

@ Adám Teşekkürler. Ngn'in hilesi, 1⎕ / ⍕'nın işe yaradığını görüyorum. Deyim listesi için bir tane?
Graham

Hangi deyim listesinden bahsediyorsun?
15’de

@ Adám En sık kullandığım iki deyim listesi Finnapl ve APL2idioms'tur
Graham

Burada bu kadar aptal olan ne olduğundan emin değilim. Bu sadece golf. Her neyse, deyim listem seni ilgilendirebilir.
Ad’m


3

MathGolf , 7 6 bayt

ú░\┴╜╪

Çevrimiçi deneyin.

Çıktı 1için Eve 0için C.

Açıklama:

ú         # 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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.