"মিথ্যা কথা বলার সময়"


47

মিথ্যা যখন করবেন

কর্মক্ষেত্রে আজ আমার এক সহকর্মী ডু-অল (মিথ্যা) জন্য ইউস-কেস বর্ণনা করছেন। যার সাথে তিনি কথা বলছিলেন তিনি ভেবেছিলেন যে এটি নির্বোধ এবং এত সহজ যদি বিবৃতি আরও ভাল হয়। এরপরে আমরা আমাদের দিনের অর্ধেক অপচয় করতে এগিয়ে গেলাম এর সমতুল্য কিছু লেখার জন্য সবচেয়ে ভাল পদ্ধতি নিয়ে আলোচনা:

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);

এটি একটি প্রতিমা যা প্রায়শই সিতে পাওয়া যায়। আপনার প্রোগ্রামটি শর্তের উপর নির্ভর করে নীচের সিউডো-কোডের মতো একই আউটপুট তৈরি করা উচিত।

do
{
   result += "A";

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

   result += "C"

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

   result += "E";

}
while(false);

print(result);

সুতরাং ইনপুট হতে পারে:

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

এবং আউটপুটটি হওয়া উচিত:

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

এটি কোড-গল্ফ তাই উত্তরগুলি বাইট অনুসারে বিচার করা হবে। স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ করা হয়েছে।

হ্যাঁ এটি একটি সহজ, তবে আশা করি আমরা কিছু সৃজনশীল উত্তর দেখতে পাব, আমি আশা করছি সরলতা লোকদের এমন ভাষা ব্যবহার করতে উত্সাহিত করবে যার সাথে তারা কম আত্মবিশ্বাসী।


আউটপুটটির কি বড় হাতের অক্ষর থাকতে হবে, না ছোট হাতেরও অনুমতি আছে?
আদনান

7
আপনার সহকর্মীর সাথে বিতর্কের পক্ষে একরূপ হিসাবে, আমার কাছে মনে হয় return resultআপনি জায়গাটিতে কোনও পদ্ধতি ব্যবহার করে একই জিনিসটি সম্পাদন করতে পারেন break। তারপরে আপনি পুনরায় ব্যবহারের যোগ্যতা এবং কলিং কোডটিও সহজ করার বোনাস পাবেন get তবে সম্ভবত আমি কিছু মিস করছি।
jpmc26

3
আমি জানতাম না যে এটি সি-এর একটি প্রতিমা ছিল ...
মেহরদাদ

5
@ মেহরদাদ কিছু লোক এর পরিবর্তে এটি gotoব্যবহার করেন কারণ ব্যবহারটি gotoখারাপ ফর্ম বলে :)
শেঠ

2
আমি কেবল do{}while(false)একবারই ম্যাক্রোগুলির অভ্যন্তরে ব্যবহার করেছি । একটি সাধারণ ifযথেষ্ট নয়, কারণ এটি elseউপস্থিত থাকতে পারে এমনগুলির সাথে এটির সাথে খারাপভাবে যোগাযোগ করে । ম্যাক্রো ছাড়া আপনি পাশাপাশি doএবং মুছে ফেলতে পারেন while
nwp

উত্তর:


19

পাইথন 3, 31

এক্সনোরকে 1 বাইট সংরক্ষণ করা হয়েছে।

ES6 থেকে কেবল একটি বাইট দূরে। : / বোকা পাইথন এবং এর দীর্ঘ বেনামে ফাংশন সিনট্যাক্স।

এক লাইনারের জন্য হুর!

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

পরীক্ষার কেস:

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

7
আপনি যদি পুনঃ অর্ডার করেন তবে আপনি x*"AB"পরে স্থানটি সংরক্ষণ করতে পারেন।
xnor

2
দুঃখিত, আপনার দীর্ঘ, বেনামে ফাংশন বাক্য
কনর ওব্রায়েন

5
@ CᴏɴᴏʀO'Bʀɪᴇɴ আমি জানতাম কিছু পাইথনকে ধরে রেখেছিল। আমি একটি পিইপি ASAP জমা দেব।
মরগান থ্র্যাপ


9
λপ্রতিশব্দ তৈরি করার জন্য একটি পিইপি lambdaদুর্দান্ত হবে :)
রবার্ট গ্রান্ট

13

জাভাস্ক্রিপ্ট ES6, 30 26 25 বাইট

একটি সাধারণ বেনামী ফাংশন দুটি ইনপুট গ্রহণ করে। কল করার জন্য একটি ভেরিয়েবলকে বরাদ্দ করুন। আপডেট : চলুন ইনডেক্স ব্যান্ডওয়াগানে ঝাঁপ দাও। এটি 4 বাইট সংরক্ষণ করে। আমি পাইথনের উপরে আমার নেতৃত্ব সুরক্ষিত করেছি । ফাংশনটি কারি করে একটি বাইট সংরক্ষণ করেছেন; মত কল (...)(a)(b)। ধন্যবাদ প্যাট্রিক রবার্টস!

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

পুরানো, আসল সংস্করণ, 30 বাইট (পাইথন উত্তরের সাথে গলে না যাওয়ার জন্য অন্তর্ভুক্ত (;):

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

এটি তেমন চালাক নয় ...
theonlygusti

15
@ থিওনলিগুস্টি এটি একটি কোড-গল্ফ, জনপ্রিয়তার প্রতিযোগিতা নয়। এছাড়াও, যদি আরও সংক্ষিপ্ত সমাধান পাওয়া যায় তবে কেন বর্জ্য বাইটগুলি চালাক হচ্ছে?
কনার ও'ব্রায়েন

আমি আপনার নাকের পছন্দ পছন্দ করি:b?
জে আতকিন

পছন্দ করেছেন
কনর ও'ব্রায়েন



9

হাস্কেল, 28 বাইট

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

ব্যবহারের উদাহরণ: False # True-> "ACD"

ইনপুট মানগুলি সরাসরি গার্ড হিসাবে ব্যবহার করা।


9

এমএটিএল , 15 17 বাইট

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

ইনপুট হয় 0বা 1আলাদা লাইন। অন্যথা, 0দ্বারা প্রতিস্থাপিত করা যাবে F(MATL এর false) এবং 1দ্বারা T(MATL এর true)।

এটি অনলাইন চেষ্টা করুন!

?           % 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 বাইট

এটি ধরে নিয়েছে যে সি 1 এবং সি 2 হ'ল কাঁচা 0 বা 1 বাইট হিসাবে ইনপুট। যেমন

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

Golfed:

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

Ungolfed:

                                      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
]

আমি লক্ষ করাটা যে এই সমাধান বিশ্বাস হয় যখন loops বাইরে ভঙ্গ উপর ভিত্তি করে আসলে।



7

এনটিএফজে , 110 বাইট

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

আরও পঠনযোগ্য:

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

এটা অবশ্যই বিনোদনমূলক ছিল। ইনপুট হিসাবে দুটি অক্ষর ( বা ) ব্যবহার করে এখানে চেষ্টা করে দেখুন01

বিটিগুলিতে 0, 1 (অক্ষর) রূপান্তর করার জন্য ETHPr Productions এর পদ্ধতিটি ব্যবহার করা সহজ becomes

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

এটিই বলা পদ্ধতি। 193 ( ##~~~~~#@) পুশ করে, এটিকে |শীর্ষে ইনপুট মান দিয়ে ( ) এই ক্ষেত্রে প্রথম চর কোড, একটি 48 বা 49) NA 255 সঙ্গে এই উৎপাদনের 1 254 এবং 255 0. Nanding জন্য ( ########@) ইনপুট অনুযায়ী উৎপাদ একটি 0 বা 1 বিট।

~#~~~~~#@*

এটি একটি মুদ্রণ করে A, যেহেতু সমস্ত ইনপুট শুরু হয় A। মুদ্রণের সময় *পপ করে A, সুতরাং স্ট্যাকটি তার পূর্বের অবস্থা থেকে অপরিবর্তিত।

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

কেস 1: প্রথম বিটটি হল 1এবং (কোডটি সক্রিয় করে। ~#~~~~#~@*মুদ্রণ করে Bএবং ########@^255 টি পুশ করে এবং কোডে সেই অবস্থানের দিকে ঝাঁপ দেয়। এটি প্রোগ্রামের শেষ হিসাবে এটি শেষ হয়।

কেস 2: প্রথম বিট হয় 0(এড়িয়ে যায় )এবং কোড অব্যাহত থাকে।

~#~~~~##@*

এটি মুদ্রণ করে একটি C, কারণ এটি পরবর্তী চরিত্র।

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

এটি আমাদের দ্বিতীয় ইনপুটটিকে কিছুটা রূপান্তর করে।

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

আমাদের দ্বিতীয় বিট যদি 1 হয় তবে আমরা একটি মুদ্রণ করতে এগিয়ে যাই E

:~||

এটি আমাদের বিট বুলিয়ান নেতিকরণের NAND উপস্থাপনা: A NAND (0 NAND A) = NOT A

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

বিটটি যদি 0প্রিন্ট হয় তবে এটি এখন সক্রিয় হয় E


5

পাইথ, 16 বাইট

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

পরীক্ষা স্যুট

Ternaries!

ব্যাখ্যা:

+\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.

পরপর দুটি লাইনে ইনপুট।


3
ওহ পাইথমাস্টার, আমাদের এই প্রোগ্রামের উপায়গুলি জানান। ;)
কনার ও'ব্রায়েন

5

সিজেম, 15 16 17 বাইট

'Ali'B'C'Eli-+?

এটি অনলাইন চেষ্টা করুন!

@ র্যান্ডোমরাকে ধন্যবাদ একটি বাইট, এবং একটি ডেনিসকে বাইট অফ ধন্যবাদ

ব্যাখ্যা:

'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

পুরানো সংস্করণ (16 বাইট):

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

ব্যাখ্যা:

'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
আমাদের ভাল বন্ধু আলী এবং এলি!
কনর ওব্রায়েন

5

পাইথ, 13 টি অক্ষর, 19 বাইট

.HC@"૎્««"iQ2

আকারে ইনপুট নেয় [ক, খ]

ব্যাখ্যা

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

এখানে চেষ্টা করুন

অথবা একটি পরীক্ষার স্যুট ব্যবহার করুন


2
কমপক্ষে ইউটিএফ -8 এ, এর ওজন 19 বাইট।
ডেনিস

1
বাইটসাইজমেটারগুলি বাইটগুলি গণনা করার জন্য সম্পূর্ণরূপে তৈরি পদ্ধতি ব্যবহার করে, যা প্রকৃত এনকোডিংয়ের সাথে (এবং করতে পারে না ) correspond এটি বর্গাকার জিনিসপত্রগুলিকে প্রতিটি 2 বাইট (ইউটিএফ -8 এ 3 বাইট) এবং «1 বাইট প্রতিটি (ইউটিএফ -8 এ 2 বাইট ) হিসাবে গণনা করে । উভয় wcএবং এটি সম্মত যে এটি 19 বাইট।
ডেনিস

4

সি, 76 বাইট

আমি নতুন নামকরণ c1করা c, c2থেকে Cএবং resultথেকে r। সি প্রোগ্রামাররা এড়াতে চরমপন্থায় যান goto। আপনার যদি কখনও সি-তে অযৌক্তিক সিনট্যাক্স সহ একটি প্রোব্লাম থাকে তবে আপনি সম্ভবত ব্যবহার না করায় সম্ভবত এটি সম্ভবত 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:

Ungolfed

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:

আপনি কি দিয়ে শুরু করতে পারেন char r[4]="A";? আমার সি মরিচা হয়।
LarsH

স্ট্রিংকে আক্ষরিক ঘোষণা করার কি এটি একটি হাস্যকর উপায় নয়?
তমোঘনা চৌধুরী

টুইটারে স্ট্রিং লিটারেলগুলি লেখার যোগ্য নয়। এটি একটি অ্যারে যা পরে স্ট্রিং আক্ষরিক "এ" দ্বারা আরম্ভ করা হয়। যেহেতু "এ" কেবলমাত্র প্রথম দুটি বাইট সেট করে, বাকিটি স্থির সময়সীকরণের অবজেক্টগুলির জন্য নিয়ম অনুসারে শুরু করা হয় (সুতরাং এই ক্ষেত্রে 0)। [সি 99 6.7.8 / 22]
রায়

1
তোমার আরম্ভের তালিকা পরিবর্তন করে 22 বাইট সংরক্ষণ করতে পারবেন "AC"এবং থেকে সবকিছু প্রতিস্থাপন r[1]=67করার r[2]=69;সঙ্গেr[2]=c2?68:69;
সত্যজিৎ

4

সি, 41 বাইট

আমি নিশ্চিত নই যে প্রশ্নের কোনও প্রোগ্রাম, একটি ফাংশন বা কোড স্নিপেট দরকার কিনা।
এখানে একটি ফাংশন:

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

এটি দুটি পরামিতিগুলিতে ইনপুট পায়, যা অবশ্যই 0 বা 1 (ভাল, bঅবশ্যই) এবং stdout এ প্রিন্ট করা উচিত।

এর aএকটিতে সেট করুন 0x4241, 0x454341বা 0x444341। স্ট্রিং হিসাবে মুদ্রিত হলে, সামান্য-এন্ডিয়ান এএসসিআইআই সিস্টেমে প্রয়োজনীয় আউটপুট দেয়।


4

আর , 41 39 37 বাইট

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

এটি অনলাইন চেষ্টা করুন!

আর এ, TRUEএবং FALSEজোর করে 1এবং 0যথাক্রমে যখন আপনি তাদের সংখ্যা হিসাবে ব্যবহার করার চেষ্টা করেন তখন জোর করে । আমরা সূচকের এইসব নম্বর রূপান্তর করতে পারেন 1, 2এবং 3সূত্র মাধ্যমে 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

এই মান তারপর তালিকা সূচক ব্যবহার করা হয় ACD, ACE, ABসঠিক আউটপুট পাড়তে পারেন।

জাইসিকে দুটি বাইট সংরক্ষণ করা হয়েছে।

পরিবর্তে আপনি যদি একটি ifবিবৃতি সহ কোনও সংস্করণ পছন্দ করেন তবে 41 বাইটের জন্য নিম্নলিখিত রয়েছে:

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

এটি অনলাইন চেষ্টা করুন!



@ জাসি ধন্যবাদ, আমি উত্তর আপডেট করেছি!
rturnbull

3

গণিত, 35 30 বাইট

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

খুব সহজ. বেনামে ফাংশন।


3

রেটিনা, 22 বাইট

1.+
AB
.+1
ACD
.+0
ACE

অনলাইনে চেষ্টা করুন


1
retina.tryitonline.net/… । উপসর্গ ^সঙ্গে m`, এটা বহু-লাইন ইনপুট, যা প্রশ্নের জন্য প্রয়োজন হয় না কাজ, কিন্তু সহজ পরীক্ষা করে তোলে না।
ডিজিটাল ট্রমা

আমি মনে করি আপনি দুটি ইনপুটগুলির মধ্যে স্থান সরিয়ে 3 বাইট সংরক্ষণ করতে পারেন।
ক্যালকুলেটরফলাইন

3

জাভাস্ক্রিপ্ট, 38 বাইট

নো-ডিলিমিটার 0বা এর 1পরিবর্তে false/ ব্যবহার করুনtrue

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

1
আপনি ব্যবহার করতে পারেন split` ` পরিবর্তেsplit(" ")
andlrc

এছাড়াও আপনি ব্যবহার করতে পারেন +('0b'+prompt())পরিবর্তেparseInt(prompt(),2)
andlrc


3

আর্নল্ডসি , 423 বাইট

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

যেহেতু আর্নল্ডসির আনুষ্ঠানিক ইনপুট নেই বলে মনে হচ্ছে, কেবল প্রথম 2 টি YOU SET US UPমান পরিবর্তে 0 বা 1 তে পরিবর্তন করুন।

ব্যাখ্যা

এটি শর্তাধীন বিবৃতিগুলির পুরো একটি গোছা যা সমস্ত সম্ভাব্য আউটপুটগুলির জন্য অ্যাকাউন্ট। কেন, আপনি জিজ্ঞাসা করতে পারেন? আচ্ছা, আর্নল্ডসির আসলে স্ট্রিং বোধগম্যতা নেই। এটি স্ট্রিংগুলিও সংযুক্ত করতে পারে না! ফলস্বরূপ, আমাদের আরও ... অকার্যকর ... পদ্ধতি অবলম্বন করতে হবে।


এর, আউটপুটটি "AB" হওয়া উচিত যদি সত্য হয়, "ABD" / "ABE" নয়। এটি আপনার কোড খাটো করা উচিত!
টবি স্পিড

3

জাভা, 28 বাইট

অনেকগুলি উত্তর হিসাবে একই বয়লারপ্লেট। টাইপ হয় BiFunction<Boolean,Boolean, String>

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

আমি জানি এটি প্রায় দুই বছর হয়েছে, তবে (c,d)->আপনি c->d->যখন ব্যবহার করেন তখন 1 বাইট দ্বারা গল্ফ করা যায় java.util.function.Function<Boolean, java.util.function.Function<Boolean, String>>
কেভিন ক্রুজসসেন 25'18

2

পাইথ, 21 বাইট

@c"ACE ACD AB AB"diz2

এখানে চেষ্টা করুন!

ইনপুট সত্য / মিথ্যা পরিবর্তে 0 বা 1 হিসাবে নেওয়া হয় যখন সি 1 আসে প্রথম।

ব্যাখ্যা

কেবলমাত্র 4 টি সম্ভাব্য ফলাফল রয়েছে তা ব্যবহার করে। ইনপুটটিকে বাইনারি হিসাবে ব্যাখ্যা করে, এটি বেস 10 এ রূপান্তর করে এবং অনুসন্ধানের স্ট্রিং থেকে সঠিক ফলাফলটি বেছে নিতে এটি ব্যবহার করে কাজ করে।

@c "ACE ACD AB AB" diz2 # z = ইনপুট

                  iz2 # বাইনারি ইনপুট বেস 10 এ রূপান্তর করুন
 c "ACE ACD AB AB" d # স্পেসে বিভক্ত স্ট্রিং
@ # সূচকে উপাদান পান Get

2

Y , 20 বাইট

প্রথম ইনপুটটি যদি একটি হয় তবে কেবলমাত্র একটি ইনপুট নেওয়া হবে। আমি ধরে নিই যে এই আচরণ অনুমোদিত is এখানে চেষ্টা করুন!

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

Ungolfed:

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

ব্যাখ্যা:

'B'A

এই অক্ষর পাহাড় জমে Bতারপর Aস্ট্যাকে।

jh M

এটি একটি ইনপুট নেয়, এটি বাড়ায়, এটিকে পপ করে এবং এই সংখ্যার অংশের উপরে চলে যায়।

কেস 1: j1 = 0। এটি আরও আকর্ষণীয়। r$স্ট্যাকটি বিপরীত করে এবং একটি মান পপ করে, 'C'Eঅক্ষরগুলিকে ঠেলে দেয় Cএবং E। এটির সংখ্যাসূচক অংশে @রূপান্তরিত Eকরে, এটি থেকে দ্বিতীয় ইনপুটটি বিয়োগ করে এবং এটিকে একটি চরিত্রে পুনরায় রূপান্তর করে। rস্ট্যাকটি বিপরীত করে। তারপরে, প্রোগ্রামটি সি-লিঙ্কটি দেখে এবং পরবর্তী লিঙ্কে চলে আসে pএবং স্ট্যাকটি মুদ্রণ করে।

কেস 2: প্রোগ্রামটি শেষ লিঙ্কে চলে আসে p, যা কেবল পুরো স্ট্যাকটি মুদ্রণ করে।


2

পাওয়ারশেল, 40 বাইট

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

নেপটেড অ্যারেগুলি ইনপুট দ্বারা সূচিযুক্ত। PowerShell সালে $true/ 1এবং $false/ 0কার্যত সমতুল্য (খুব আলগা টাইপকাস্টিং ধন্যবাদ), যাতে সুন্দরভাবে দুই উপাদানের বিন্যাস মধ্যে ইনডেক্স। এটি পাওয়ারশেল যতটা ত্রৈমাসিকের কাছাকাছি আসে তার খুব কাছাকাছি এবং আমি গল্ফিংয়ে এটি প্রচুর সময় ব্যবহার করেছি।

উদাহরণ

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

ভিটসি , 26 বাইট

একটি নতুন লাইন পৃথক করে STDIN এর মাধ্যমে ইনপুটগুলি 1s বা 0 এর হিসাবে প্রত্যাশা করে।

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

আমি এই চ্যালেঞ্জের সময় বিবৃতি দিয়ে আসলে একটি গুরুতর সমস্যা আবিষ্কার করেছি। ডি: এটি ভাঙা সংস্করণ সহ পোস্ট করা হয়েছে, তবে এটি ঠিক কাজ করে। (আমি সমস্যার সমাধানের পরে এটি আপডেট করব) দয়া করে মনে রাখবেন যে আমি / ifnot এর একটি ফিক্স সহ ভিটিকে আপডেট করেছি। এই পরিবর্তনটি আমাকে কোনও সুবিধা দেয় না, কেবল ব্যাখ্যা।

ব্যাখ্যা:

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.

অনলাইনে চেষ্টা করে দেখুন!


2

মোম , 26 বাইট

সত্য 0হিসাবে মিথ্যা ব্যাখ্যা করা 1

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

আউটপুট:

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!

আমার গিথুব সংগ্রহশালা থেকে আমার মোমের মোটা দোভাষী ক্লোন করুন ।


আমি নিশ্চিত যে আপনার উদ্ধৃতিগুলির দরকার নেই।
আন্ডারগ্রাউন্ডোমোনাইল

@ আন্ডারগ্রাউন্ডমোনোরাইল: ঠিক আছে, আমি আমার সমাধানটি আপডেট করব। ধন্যবাদ।
এমএল

2

সি, 47 45 বাইট

যেহেতু কেবলমাত্র 3 টি পৃথক ফলাফল রয়েছে, আমরা তিনটি স্ট্রিং এর মধ্যে একটির মতো বেছে নিতে পারি:

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

হারমান এলকে 2 বাইটের জন্য ধন্যবাদ

ডেমো

#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
-২ বাইট:char*f(c,d){return"AB\0 ACE\0ACD"+(!c<<d+2);}
হারমান এল

টিআইও প্লেসের সাথে লিঙ্ক করুন
এএসসিআইআই-

1

পার্ল, 23 বাইট

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

প্রয়োজন -E| -M5.010পতাকা এবং 1 এবং 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

বিকল্প সমাধান যা প্রয়োজন -pএবং এটি 22 + 1 = 23 বাইট হয়:

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

say-<>?AB:-<>?ACD:ACEদুটি বাইট সংক্ষিপ্ত।
nwellnhof

1

05 এ বি 1 ই , 23 20 বাইট

কোড:

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

এটি অনলাইন চেষ্টা করুন!


1
এটি সম্ভবত 05AB1E এর একটি প্রাচীন সংস্করণ, তবে এটি এখন 14 বাইট হতে পারে: i„ABë„AC69I-çJ এটি অনলাইনে চেষ্টা করুন বা সমস্ত পরীক্ষার কেস যাচাই করুন
কেভিন ক্রুইজসেন

1
পুনঃটুইট এটি প্রকৃতপক্ষে 05AB1E এর একটি প্রাচীন সংস্করণ। ভাষাটি এখানে প্রায় তিন মাস পুরানো ছিল (এটির মধ্যে অন্তর্নিহিত ইনপুটও নেই)।
আদনান

1
হ্যাঁ, আমি ইতিমধ্যে নেতৃত্ব সম্পর্কে বিভ্রান্ত ছিল I। ; পি
কেভিন ক্রুইজসেন

1

জাপট, 19 বাইট

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

এটি অনলাইন পরীক্ষা!

মজাদার ঘটনা: এটি কোনও বাগের জন্য না থাকলে এটি 16 বাইট হত:

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

বাগগুলি সবচেয়ে খারাপ: |
কনার ও'ব্রায়েন

2
@ কেওবি লেমমে দেখুন আমি কী কোনও পুরানো সংস্করণ খনন করতে পারি যাতে এই বাগটি নেই। তারপরে 16 বাইটটি বৈধ হবে।
ETH প্রোডাকশনগুলি


@ ক্যালকুলেটরফালাইন আমি বিশ্বাস করি এর মতো নেস্টেড স্ট্রিংগুলি কোনও কারণে ট্র্যাপিল করা হয় না।
ETH প্রোডাকশনস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.