Các thành ngữ làm trong khi sai Sai thành ngữ


47

Làm trong khi sai

Trong công việc hôm nay, một trong những đồng nghiệp của tôi đã mô tả trường hợp sử dụng để làm trong khi (sai). Người mà anh ta đang nói chuyện nghĩ rằng điều này thật ngớ ngẩn và thật đơn giản nếu những phát biểu sẽ tốt hơn nhiều. Sau đó, chúng tôi đã tiến hành lãng phí một nửa thời gian trong ngày để thảo luận về cách tốt nhất để viết một cái gì đó tương đương với:

do
{
   //some code that should always execute...

   if ( condition )
   {
      //do some stuff
      break;
   }

   //some code that should execute if condition is not true

   if ( condition2 )
   {
       //do some more stuff
       break;
   }

   //further code that should not execute if condition or condition2 are true

}
while(false);

Đây là một thành ngữ được tìm thấy trong c khá thường xuyên. Chương trình của bạn sẽ tạo ra cùng một đầu ra như mã giả dưới đây tùy thuộc vào các điều kiện.

do
{
   result += "A";

   if ( C1)
   {
      result += "B";
      break;
   }

   result += "C"

   if ( C2 )
   {
       result += "D";
       break;
   }

   result += "E";

}
while(false);

print(result);

Do đó, đầu vào có thể là:

1. C1 = true, C2 = true
2. C1 = true, C2 = false
3. C1 = false, C2 = true
4. C1 = false, C2 = false

và đầu ra phải là:

1. "AB"
2. "AB"
3. "ACD"
4. "ACE"

Đây là môn đánh gôn, vì vậy câu trả lời sẽ được đánh giá theo byte. Sơ hở tiêu chuẩn bị cấm.

Vâng, đây là một điều đơn giản, nhưng hy vọng chúng ta sẽ thấy một số câu trả lời sáng tạo, tôi hy vọng sự đơn giản sẽ khuyến khích mọi người sử dụng ngôn ngữ mà họ không tự tin.


Đầu ra có phải là chữ hoa hay chữ thường cũng được phép không?
Ad Nam

7
Như một phần dành cho cuộc tranh luận với đồng nghiệp của bạn, dường như với tôi bạn có thể hoàn thành điều tương tự bằng cách sử dụng một phương pháp return resultthay thế break. Sau đó, bạn nhận được tiền thưởng của khả năng sử dụng lại và đơn giản hóa mã cuộc gọi, quá. Nhưng có lẽ tôi đang thiếu một cái gì đó.
jpmc26

3
Tôi không biết đây là một thành ngữ trong C ...
Mehrdad

5
@Mehrdad một số người làm điều này thay gotovì vì sử dụng gotolà hình thức xấu :)
Seth

2
Lần duy nhất tôi từng sử dụng do{}while(false)là bên trong các macro. Một đơn giản ifkhông đủ, bởi vì nó tương tác xấu với elses xung quanh có thể có mặt. Nếu không có macro, bạn cũng có thể loại bỏ dowhile.
nwp

Câu trả lời:


19

Trăn 3, 31

Đã lưu 1 byte nhờ xnor.

Chỉ một byte từ ES6. : / Python ngu ngốc và cú pháp hàm ẩn danh dài của nó.

Hoan hô cho một lót!

lambda x,y:x*"AB"or"AC"+"ED"[y]

Các trường hợp thử nghiệm:

assert f(1, 1) == "AB"
assert f(1, 0) == "AB"
assert f(0, 1) == "ACD"
assert f(0, 0) == "ACE"

7
Nếu bạn đặt hàng lại x*"AB", bạn có thể tiết kiệm không gian sau.
xnor

2
Xin lỗi, cú pháp hàm ẩn danh dài và dài của bạn sẽ là cái chết của python: P
Conor O'Brien

5
@ CᴏɴᴏʀO'Bʀɪᴇɴ Tôi biết có thứ gì đó phải giữ Python lại. Tôi sẽ nộp PEP càng sớm càng tốt.
Morgan Thrapp

2
Bạn làm điều đó và tôi sẽ đặt mua bẫy rắn
Conor O'Brien

9
Một PEP để tạo λmột từ đồng nghĩa lambdasẽ là tuyệt vời :)
Robert Grant

13

JavaScript ES6, 30 26 25 byte

Một hàm ẩn danh đơn giản lấy hai đầu vào. Chỉ định một biến để gọi. Cập nhật : Hãy nhảy vào bandwagon chỉ mục. Nó tiết kiệm 4 byte. Tôi đã bảo đảm sự dẫn đầu của tôi đối với Python . Đã lưu một byte bằng cách curry hàm; gọi như thế (...)(a)(b). Cảm ơn Patrick Roberts!

a=>b=>a?"AB":"AC"+"ED"[b]

Phiên bản cũ, nguyên bản, 30 byte (bao gồm để không tan chảy trong câu trả lời của python (;):

(a,b)=>"A"+(a?"B":b?"CD":"CE")

Đây không phải là thông minh ...
theonlygusti

15
@theonlygusti Đây là một môn đánh gôn, không phải là một cuộc thi phổ biến. Ngoài ra, tại sao lãng phí byte là thông minh nếu có một giải pháp ngắn gọn hơn?
Conor O'Brien

Tôi thích sự lựa chọn của bạn về mũi:b?
J Atkin

@JAtkin Thật vậy!
Conor O'Brien

4
Bạn có thể tiết kiệm một byte với currying
Patrick Roberts


9

Haskell, 28 byte

x#y|x="AB"|y="ACD"|1<2="ACE"

Ví dụ sử dụng: False # True-> "ACD".

Sử dụng các giá trị đầu vào trực tiếp như bảo vệ.


9

MATL , 15 17 byte

?'AB'}'AC'69i-h

Đầu vào là 0hoặc 1trên các dòng riêng biệt. Ngoài ra, 0có thể được thay thế bằng F(MATL của false) và 1bằng T(MATL của true).

Hãy thử trực tuyến!

?           % if C1 (implicit input)
  'AB'      %   push 'AB'
}           % else
  'AC'      %   push 'AC'
  69        %   push 69 ('E')
  i-        %   subtract input. If 1 gives 'D', if 0 leaves 'E'
  h         %   concatenate horizontally
            % end if (implicit)

8

Brainfuck, 65 byte

Điều này giả định rằng C1 và C2 là đầu vào dưới dạng 0 hoặc 1 byte thô. ví dụ

echo -en '\x00\x01' | bf foo.bf

Chơi gôn

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

Ung dung:

                                      Tape
                                      _0
++++++++[>++++++++<-]>+.+  print A    0 _B
>+>,                       read C1    0 B 1 _0  or  0 B 1 _1
[<-<.>>-]<                 print B    0 B _0 0  or  0 B _1 0
[<+.+>>                    print C    0 D 1 _0
    ,                      read C2    0 D 1 _0  or  0 D 1 _1
    [<-<.>>-]<             print D    0 D _0 0  or  0 D _1 0
    [<+.>-]                print E    0 D _0    or  0 E _0
]

Tôi tin rằng đáng chú ý rằng giải pháp này trên thực tế dựa trên việc thoát ra khỏi các vòng lặp trong khi.



7

NTFJ , 110 byte

##~~~~~#@|########@|~#~~~~~#@*(~#~~~~#~@*########@^)~#~~~~##@*##~~~~~#@|########@|(~#~~~#~~@*):~||(~#~~~#~#@*)

Dễ đọc hơn:

##~~~~~#@|########@|~#~~~~~#@*(~#~~~~#~@*########@^)~#~~~~##@*##~~~~~#@|########@|(~#~~~#~~@*
):~||(~#~~~#~#@*)

Đó chắc chắn là giải trí. Hãy thử ở đây , sử dụng hai ký tự ( 0hoặc 1) làm đầu vào.

Sử dụng phương pháp của ETH Producttion để chuyển đổi thành 0, 1 (ký tự) thành bit, điều này trở nên đơn giản hơn.

##~~~~~#@|########@|

Đây là phương pháp đã nói. Đẩy 193 ( ##~~~~~#@), NANDing nó ( |) với giá trị đầu vào hàng đầu (trong trường hợp này là mã char đầu tiên, 48 hoặc 49). Điều này mang lại 254 cho 1 và 255 cho 0. NANDing với 255 ( ########@) mang lại 0 hoặc 1 bit theo đầu vào.

~#~~~~~#@*

Điều này in một A, vì tất cả đầu vào bắt đầu bằng A. *bật lên Akhi in, vì vậy ngăn xếp không thay đổi so với trạng thái trước đó.

(~#~~~~#~@*########@^)

Trường hợp 1: bit đầu tiên là 1(kích hoạt mã bên trong. ~#~~~~#~@*in B########@^đẩy 255 và nhảy đến vị trí đó trong mã. Đây là kết thúc của chương trình, nó chấm dứt.

Trường hợp 2: bit đầu tiên là 0. (bỏ qua )và mã tiếp tục.

~#~~~~##@*

Điều này in một C, bởi vì đó là nhân vật tiếp theo.

##~~~~~#@|########@|

Điều này chuyển đổi đầu vào thứ hai của chúng tôi thành một chút.

(~#~~~#~~@*)

Nếu bit thứ hai của chúng tôi là 1, chúng tôi tiến hành in một E.

:~||

Đây là đại diện NAND của phủ định Boolean của bit của chúng tôi : A NAND (0 NAND A) = NOT A.

(~#~~~#~#@*)

Điều này bây giờ kích hoạt nếu bit là một 0, và in E.


5

Bình thường, 16 byte

+\A?Q\B+\C?E\D\E

Bộ kiểm tra

Chim nhạn!

Giải trình:

+\A              Start with an A
?Q\B             If the first variable is true, add a B and break.
+\C              Otherwise, add a C and
?E\D             If the second variable is true, add a D and break.
\E               Otherwise, add a E and finish.

Đầu vào trên hai dòng liên tiếp.


3
Oh pythmaster, hãy cho chúng tôi biết những cách của chương trình này. ;)
Conor O'Brien

5

CJam, 15 16 17 byte

'Ali'B'C'Eli-+?

Hãy thử trực tuyến!

Giảm một byte nhờ @randomra và tắt một byte nhờ @Dennis

Giải trình:

'A                  e# push "A"
  li                e# read first input as an integer
    'B              e# push "B" 
      'C            e# push "C"
        'E          e# push "E"
          li-       e# leave "E" or change to "D" according to second input
             +      e# concatenate "C" with "E" or "D"
              ?     e# select "B" or "C..." according to first input

Phiên bản cũ (16 byte):

'Ali'B{'C'Eli-}?

Giải trình:

'A                  e# push character "A"
               ?    e# if-then-else
  li                e# read first input as an integer. Condition for if
    'B              e# push character "B" if first input is true
      {       }     e# execute this if first input is false
       'C           e# push character "C"
         'E         e# push character "E"
           li       e# read second input as an integer
             -      e# subtract: transform "E" to "D" if second input is true
                    e# implicitly display stack contents

5
Những người bạn tốt của chúng ta Ali và Eli!
Conor O'Brien

5

Pyth, 13 ký tự, 19 byte

.HC@"૎્««"iQ2

Đưa đầu vào ở dạng [a, b]

Giải trình

               - autoassign Q = eval(input())
           iQ2 -    from_base(Q, 2) - convert to an int
   @"૎્««"    -   "૎્««"[^]
  C            -  ord(^)
.H             - hex(^)

Hãy thử nó ở đây

Hoặc sử dụng bộ kiểm tra


2
Ít nhất là trong UTF-8, cái này nặng 19 byte.
Dennis

1
byteizematters sử dụng một cách hoàn toàn được tạo ra để đếm byte, không (và không thể ) tương ứng với một mã hóa thực tế. Nó đếm các ô vuông là 2 byte mỗi (3 byte trong UTF-8) và «mỗi byte 1 byte (2 byte trong UTF-8). Cả hai wcđiều này đồng ý rằng đó là 19 byte.
Dennis

4

C, 76 byte

Tôi đặt tên c1cho c, c2để Cresultđể r. Lập trình viên C đi đến cực đoan để tránh goto. Nếu bạn từng có một lỗi với cú pháp vô lý trong C, rất có thể là do bạn không sử dụng goto.

char r[4]="A";if(c){r[1]=66;goto e;}r[1]=67;if(C){r[2]=68;goto e;}r[2]=69;e:

Ung dung

char r[4] = "A";
if(c1){
    r[1] = 'B';
    goto end;
}
r[1] = 'C';
if(c2){
    r[2] = 'D';
    goto end;
}
r[2] = 'E';
end:

Bạn có thể bắt đầu với char r[4]="A";? C của tôi bị gỉ.
LarsH

Đó không phải là một cách thực sự nực cười khi tuyên bố một chuỗi bằng chữ sao?
Tamoghna Chowdhury

@TamoghnaChowdhury Sắp xếp của. Chuỗi ký tự không thể ghi được. Đó là một mảng mà sau đó được khởi tạo bởi chuỗi "A". Vì "A" chỉ đặt hai byte đầu tiên, phần còn lại được khởi tạo theo quy tắc cho các đối tượng có thời lượng tĩnh (vì vậy 0 trong trường hợp này). [C99 6.7.8 / 22]
Ray

1
Bạn có thể tiết kiệm 22 byte bằng cách thay đổi danh sách khởi tạo đến "AC"và thay thế tất cả mọi thứ từ r[1]=67đến r[2]=69;vớir[2]=c2?68:69;
Ray

4

C, 41 byte

Tôi không chắc câu hỏi có yêu cầu chương trình, chức năng hay đoạn mã không.
Đây là một chức năng:

f(a,b){a=a?16961:4473665|b<<16;puts(&a);}

Nó nhận đầu vào ở hai tham số, phải là 0 hoặc 1 (tốt, bphải) và in ra thiết bị xuất chuẩn.

Đặt athành một trong 0x4241, 0x454341hoặc 0x444341. Khi được in dưới dạng chuỗi, trên hệ thống ASCII nhỏ, sẽ cho đầu ra cần thiết.


4

R , 41 39 37 byte

pryr::f(c("ACD","ACE","AB")[1+a+a^b])

Hãy thử trực tuyến!

Trong R, TRUEFALSEbị ép buộc 10tương ứng khi bạn cố gắng sử dụng chúng làm số. Chúng tôi có thể chuyển đổi những con số để chỉ số 1, 23thông qua các công thức 1+a+a^b.

  a  |   b  | 1+a+a^b
TRUE | TRUE | 1+1+1^1 = 3
TRUE | FALSE| 1+1+1^0 = 3
FALSE| TRUE | 1+0+0^1 = 1
FALSE| FALSE| 1+0+0^0 = 2

Những giá trị này sau đó được sử dụng để chỉ số danh sách ACD, ACE, ABđể mang lại kết quả chính xác.

Lưu hai byte nhờ JayCe.

Thay vào đó, nếu bạn thích một phiên bản có ifcâu lệnh, thì có 41 byte sau:

pryr::f(`if`(a,"AB",`if`(b,"ACD","ACE")))

Hãy thử trực tuyến!



@JayCe Cảm ơn, tôi đã cập nhật câu trả lời!
rturnbull

3

Toán học, 35 30 byte

If[#,"AB",If[#2,"ACD","ACE"]]&

Rất đơn giản. Chức năng ẩn danh.



3

JavaScript, 38 byte

Sử dụng không phân cách 0hoặc 1thay vì false/true

_=>"ACE ACD AB AB".split` `[+('0b'+_)]

1
Bạn có thể sử dụng split` ` thay vìsplit(" ")
andlrc

Bạn cũng có thể sử dụng +('0b'+prompt())thay vìparseInt(prompt(),2)
andlrc


3

ArnoldC , 423 byte

IT'S SHOWTIME
HEY CHRISTMAS TREE a
YOU SET US UP 0
HEY CHRISTMAS TREE b
YOU SET US UP 0
BECAUSE I'M GOING TO SAY PLEASE a
BECAUSE I'M GOING TO SAY PLEASE b
TALK TO THE HAND "ABD"
BULLSHIT
TALK TO THE HAND "ABE"
YOU HAVE NO RESPECT FOR LOGIC
BULLSHIT
BECAUSE I'M GOING TO SAY PLEASE b
TALK TO THE HAND "ACD"
BULLSHIT
TALK TO THE HAND "ACE"
YOU HAVE NO RESPECT FOR LOGIC
YOU HAVE NO RESPECT FOR LOGIC
YOU HAVE BEEN TERMINATED

Vì ArnoldC dường như không có đầu vào chính thức, thay vào đó chỉ cần thay đổi 2 YOU SET US UPgiá trị đầu tiên thành 0 hoặc 1.

Giải trình

Đây chỉ là một loạt các báo cáo có điều kiện chiếm tất cả các kết quả đầu ra có thể. Tại sao, bạn có thể hỏi? Chà, ArnoldC không thực sự có chuỗi hiểu. Nó thậm chí không thể nối chuỗi! Kết quả là, chúng ta phải sử dụng phương pháp ... kém hiệu quả hơn.


Er, đầu ra phải là "AB" nếu a đúng, không phải "ABD" / "ABE". Điều đó sẽ làm cho mã của bạn ngắn hơn!
Toby Speight

3

Java, 28 byte

Cùng một bản tóm tắt như rất nhiều câu trả lời. loại là BiFunction<Boolean,Boolean, String>.

(c,d)->c?"AB":d?"ACD":"ACE"

Tôi biết đã gần hai năm, nhưng (c,d)->có thể bị đánh 1 byte c->d->khi bạn sử dụng a java.util.function.Function<Boolean, java.util.function.Function<Boolean, String>>.
Kevin Cruijssen

2

Bình thường, 21 byte

@c"ACE ACD AB AB"diz2

Hãy thử nó ở đây!

Đầu vào được lấy là 0 hoặc 1 thay vì đúng / sai trong khi C1 đến trước.

Giải trình

Chỉ cần sử dụng thực tế là chỉ có 4 kết quả có thể. Hoạt động bằng cách diễn giải đầu vào dưới dạng nhị phân, chuyển đổi nó thành cơ sở 10 và sử dụng điều này để chọn kết quả đúng từ chuỗi tra cứu.

@c "ACE ACD AB AB" diz2 # z = đầu vào

                  iz2 # Chuyển đổi đầu vào nhị phân sang cơ sở 10
 c "ACE ACD AB AB" d # Chia chuỗi tại các khoảng trắng
@ # Lấy phần tử tại chỉ mục

2

Y , 20 byte

Trong trường hợp đầu vào đầu tiên là một, chỉ có một đầu vào được thực hiện. Tôi cho rằng hành vi này được cho phép. Hãy thử nó ở đây!

'B'AjhMr$'C'E@j-#rCp

Ung dung:

'B'A jh M
   r$ 'C 'E@ j - # r
 C p

Giải thích:

'B'A

Điều này đẩy các ký tự Bsau đó Ađến ngăn xếp.

jh M

Điều này nhận một đầu vào, tăng nó, bật nó và di chuyển qua số phần đó.

Trường hợp 1 : j1 = 0. Đây là một trong những thú vị hơn. r$đảo ngược ngăn xếp và bật một giá trị,'C'E đẩy các ký tự CE. @chuyển đổi Ethành đối tác số của nó, trừ đầu vào thứ hai từ nó và chuyển đổi nó thành một ký tự. rbỏ đảo ngược ngăn xếp. Sau đó, chương trình thấy liên kết C và di chuyển đến liên kết tiếp theo pvà in ngăn xếp.

Trường hợp 2: chương trình di chuyển đến liên kết cuối cùng p , chỉ in toàn bộ ngăn xếp.


2

PowerShell, 40 byte

param($x,$y)(("ACE","ACD")[$y],"AB")[$x]

Mảng lồng nhau được lập chỉ mục bởi đầu vào. Trong PowerShell, $true/1$false/ 0thực tế tương đương (nhờ kiểu chữ rất lỏng lẻo), do đó, lập chỉ mục độc đáo thành một mảng hai yếu tố. Điều này thực sự gần với một chú chim nhạn như PowerShell và tôi đã sử dụng nó rất nhiều lần trong việc chơi golf.

Ví dụ

PS C:\Tools\Scripts\golfing> .\do-while-false.ps1 1 1
AB

PS C:\Tools\Scripts\golfing> .\do-while-false.ps1 1 0
AB

PS C:\Tools\Scripts\golfing> .\do-while-false.ps1 0 1
ACD

PS C:\Tools\Scripts\golfing> .\do-while-false.ps1 0 0
ACE


2

Vitsy , 26 byte

Yêu cầu đầu vào là 1 hoặc 0 thông qua STDIN với phân tách dòng mới.

W([1m;]'DCA'W(Zr1+rZ
'BA'Z

Tôi thực sự phát hiện ra một vấn đề nghiêm trọng với các tuyên bố nếu trong thử thách này. D: Điều này được đăng với phiên bản bị hỏng, nhưng nó hoạt động tốt. (Tôi sẽ cập nhật thông tin này sau khi tôi khắc phục sự cố) Xin lưu ý rằng tôi đã cập nhật Vitsy với bản sửa lỗi if / ifnot. Thay đổi này không cấp cho tôi bất kỳ lợi thế, chỉ làm rõ.

Giải trình:

W([1m;]'DCA'W(Zr1+rZ
W                      Get one line from STDIN (evaluate it, if possible)
 ([1m;]                If not zero, go to the first index of lines of code (next line)
                       and then end execution.
       'DCA'           Push character literals "ACD" to the stack.
            W          Get another (the second) line from STDIN.
             (         If not zero, 
do the next instruction.
              Z        Output all of the stack.
               r1+r    Reverse the stack, add one (will error out on input 0, 1), reverse.
                   Z   Output everything in the stack.

'BA'Z
'BA'                   Push character literals "AB" to the stack.
    Z                  Output everything in the stack.

Hãy thử trực tuyến!


2

sáp ong , 26 byte

Giải thích 0là sai, 1là đúng.

E`<
D`d"`C`~<
_T~T~`A`"b`B

Đầu ra:

julia> beeswax("codegolfdowhile.bswx",0,0.0,Int(20000))
i1
i1
AB
Program finished!

julia> beeswax("codegolfdowhile.bswx",0,0.0,Int(20000))
i1
i0
AB
Program finished!

julia> beeswax("codegolfdowhile.bswx",0,0.0,Int(20000))
i0
i1
ACD
Program finished!

julia> beeswax("codegolfdowhile.bswx",0,0.0,Int(20000))
i0
i0
ACE
Program finished!

Sao chép trình thông dịch sáp ong của tôi từ kho lưu trữ Github của tôi .


Tôi khá chắc chắn rằng bạn không cần báo giá.
undergroundmonorail

@undergroundmonorail: Được rồi, tôi sẽ cập nhật giải pháp của mình. Cảm ơn.
ML

2

C, 47 45 byte

Vì chỉ có 3 kết quả khác nhau, chúng tôi có thể chọn một trong ba chuỗi như thế này:

char*f(c,d){return"AB\0 ACE\0ACD"+(!c<<d+2);}

Cảm ơn Herman L cho 2 byte

Bản giới thiệu

#include<stdio.h>
int main()
{
    printf("%s\n%s\n%s\n%s\n",
           f(1,1),
           f(1,0),
           f(0,1),
           f(0,0));
}

1
-2 byte:char*f(c,d){return"AB\0 ACE\0ACD"+(!c<<d+2);}
Herman L

xin vui lòng liên kết đến TIO
ASCII chỉ

1

Perl, 23 byte

say<>>0?AB:<>>0?ACD:ACE

Yêu cầu -E| -M5.010gắn cờ và nhận đầu vào là 1 và 0:

$ perl -E'say<>>0?AB:<>>0?ACD:ACE' <<< $'0\n0'
ACE
$ perl -E'say<>>0?AB:<>>0?ACD:ACE' <<< $'0\n1'
ACD
$ perl -E'say<>>0?AB:<>>0?ACD:ACE' <<< $'1\n0'
AB

Giải pháp thay thế yêu cầu -pvà là 22 + 1 = 23 byte:

$_=/^1/?AB:/1/?ACD:ACE
perl -pe'$_=/^1/?AB:/1/?ACD:ACE' <<< '0 1'

say-<>?AB:-<>?ACD:ACEngắn hơn hai byte.
nwellnhof

1

05AB1E , 23 20 byte

Mã số:

Ii"AB"?q}"AC"?69I-ç?

Hãy thử trực tuyến!


1
Đây có lẽ là một phiên bản cổ của 05AB1E, nhưng bây giờ có thể là 14 byte: i„ABë„AC69I-çJ Dùng thử trực tuyến hoặc xác minh tất cả các trường hợp thử nghiệm .
Kevin Cruijssen

1
@KevinCruijssen Đẹp! Đây thực sự là một phiên bản cổ của 05AB1E. Ngôn ngữ này khoảng ba tháng tuổi ở đây (nó thậm chí không có đầu vào ngầm).
Ad Nam

1
Vâng, tôi thực sự đã nhầm lẫn về hàng đầu I. ; p
Kevin Cruijssen

1

Japt, 19 byte

"A{U?'B:'C+(V?'D:'E

Kiểm tra nó trực tuyến!

Sự thật thú vị: Đây sẽ là 16 byte nếu không có lỗi:

"A{U?"B:C{V?"D:E

Lỗi là tồi tệ nhất: |
Conor O'Brien

2
@ CᴏɴᴏʀO'Bʀɪᴇɴ Hãy xem tôi có thể khai thác một phiên bản cũ hơn không có lỗi này không. Sau đó, 16 byte sẽ là hợp pháp.
Sản xuất ETH

1
Lỗi gì vậy?
Máy

@CalculatorFeline Tôi tin rằng các chuỗi lồng nhau như thế không thể dịch mã vì một số lý do.
Sản xuất ETH
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.