সাধারণ গল্ফিং দোভাষী


13

চ্যালেঞ্জ:

আপনার কাজ হ'ল একটি সাধারণ গল্ফিং ভাষার জন্য একটি সাধারণ দোভাষী তৈরি করা।


ইনপুট:

ইনপুট ফাঁকা দ্বারা পৃথক স্ট্রিং আকারে হবে।

আপনি যা চান তার সাথে আপনি স্থান বিভাজন প্রতিস্থাপন করতে পারেন


আউটপুট:

সমস্ত ক্রিয়াকলাপ সম্পাদনের পরে প্রাপ্ত ফলাফল (একটি সংখ্যা বা একটি স্ট্রিং) আউটপুট করুন। যদি একাধিক আউটপুট থাকে তবে একসাথে একক ফলাফল প্রদান করুন (কোনও বিভাজক নেই)। ভেরিয়েবলের প্রাথমিক মান সর্বদা শূন্য। অর্থাত্: এটি শুরু হয়0


ভাষার সিনট্যাক্স:

ভাষাতে নিম্নলিখিত অপারেটর রয়েছে:

inc  ---> add one to variable
dec  ---> remove one from variable
mult ---> multiply variable by 2
half ---> divide the variable by 2
Pri  ---> print the variable to console (or whatever your language has)
exit ---> end the program (anything after this is ignored)

উদাহরণ:

inc inc inc dec Pri exit                 ---> 2
dec inc mult inc inc Pri                 ---> 2
inc inc inc mult half Pri exit inc       ---> 3
inc Pri inc Pri inc Pri exit half mult   ---> 123
Pri exit                                 ---> 0
inc half Pri exit                        ---> 0.5 

সীমাবদ্ধতা:

এটি কোড-গল্ফ তাই প্রতিটি ভাষার জন্য বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জিতবে।


বিঃদ্রঃ:

  • ইনপুট সর্বদা বৈধ থাকবে। (অপারেটরগুলির স্ট্রিং স্পেসের সাথে পৃথক)
  • দশমিক স্থান না চাইলে আপনি নিকটতম পূর্ণসংখ্যায় যেতে পারেন।

3
আমি কি স্ট্রিংয়ের একটি তালিকা নিতে পারি? আমি কি অন্য মূলধন ব্যবহার করতে পারি?
ব্যবহারকারী 202729

প্রস্থান মামলা যুক্ত করবেন? প্রস্থানটি গুরুত্বপূর্ণ হবে
l4m2

1
@ কলডো: আপনি নতুন লাইন ব্যবহার করে পৃথক করতে পারবেন
মুহাম্মদ সালমান

3
হুম, আমি সেই ভাষাটিকে "গল্ফিং ভাষা" বলব না।
পাওলো ইবারম্যান

1
এটি বর্গক্ষেত্র এবং দীর্ঘ কমান্ড নামের পরিবর্তে ডাবল এবং অর্ধেক সহ ডেডফিশ
জো কিং

উত্তর:


8

বাশ , 61 বাইট

sed '1i0
s/.//2g;y"idmhe"+-*/q";/+\|-/i1
/*\|\//i2
/P/cdn'|dc

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

প্রোগ্রামটিকে একটি ডিসি প্রোগ্রামে রূপান্তর করে, তারপরে একে ডিসি কোড হিসাবে মূল্যায়ন করে। এটি নিউলাইনগুলি দ্বারা পৃথক করে ইনপুট নেয়। মনে রাখবেন যে ডিসি স্ট্যাক-ভিত্তিক এবং বিপরীত পলিশ স্বরলিপি ব্যবহার করে।

ইনপুটটি প্রথমে সেডে পাইপ করা হয়

1i0 ইনপুট প্রথম লাইনে, একটি 0 সন্নিবেশ (প্রিপেন্ড) করুন, এটি সঞ্চালক হবে

s/.//2g প্রতিটি লাইনের প্রথম অক্ষর ছাড়া সবকিছু সরিয়ে ফেলুন

y"idmhe"+-*/q"ভিন্ন বর্ণমালায় idmheমধ্যে +-*/qযথাক্রমে + - * / গাণিতিক কমান্ড এবং কুই প্রোগ্রাম শোধবোধ

/+\|-/+ বা - যুক্ত প্রতিটি লাইনে i1একটি 1 sertোকান

/*\|\//* বা / যুক্ত প্রতিটি লাইনে i2একটি 2 sertোকান

/P/পি যুক্ত প্রতিটি লাইনে, cdnএটিতে dnডুপ্লিকেট সমতুল্য এবং ডিসিতে নতুন লাইন ছাড়াই আউটপুট

এখন এটি ডিসি এক্সপ্রেশন হিসাবে মূল্যায়ন করা হয়।


2
আমি মনে করি sedগল্ফিং যখন খেলার মধ্যে আসে তখন সিন্টেক্সটি আরও বেশি ভিনগ্রহের হয়ে উঠবে আশা করা অযৌক্তিক নয় ।
মতিন উলহাক

6

জেলি , 21 বাইট

ḲḢ€O%11ị⁾’‘j“IȮḤH”¤VI

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


মনে রাখবেন যে প্রথম অক্ষরের ( idmhPe) মডুলো 11 এর ASCII মানগুলি অনন্য মডুলো 6।


মডুলো 16 ব্যবহার করে:

জেলি , 21 বাইট

ḲḢ€O%⁴ị“ḢwġḞkz’ṃØJ¤VI

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

ইনডেক্সে ব্যবহৃত স্ট্রিংটি ḤH‘’IȮএই ক্ষেত্রে। ‘’সীমানা উপর এখন আর নেই।


6 বাইট স্ট্রিং উপস্থাপনের জন্য 11 বাইট ব্যবহার করা ... খুব খারাপ। তবে ... “”2 বাইট ¤নেয়, 1 বাইট নেয়, ডেটা নিজেই 6 বাইট নেয়, কিছু করার জন্য 2 বাইট বাকি আছে। বর্তমানে এটি এবং j, তবে ịØJবা ṃØJআরও খারাপ, এবং কাজ করে না (কারণ ইউনিকোড)।
ব্যবহারকারী 202729

জিলির স্ট্রিং কনসেপ্ট ("একটি স্ট্রিং মুদ্রণের উপর প্রভাব ফেলতে একটি বিশেষ পতাকা সহ পূর্ণসংখ্যার একটি তালিকা") দুর্দান্ত।
ব্যবহারকারী 202729

5

আর , 128 125 বাইট

Reduce(function(x,y)switch(y,i=x+1,d=x-1,m=x*2,h=x/2,P={cat(x);x}),substr(el(strsplit(gsub("e.*$","",scan(,""))," ")),1,1),0)

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

source(echo=FALSE)রিটার্নের মানটি স্বয়ংক্রিয়ভাবে মুদ্রিত হতে রোধ করতে অবশ্যই ফোন করা উচিত । বিকল্প হবে সবকিছু মোড়ানোinvisible কিন্তু যে অনেক কম golfy (এবং আমার [এখনো] চমৎকার বাইট গণনা ধ্বংসাবশেষ)।


3

05 এ বি 1 ই , 25 বাইট

΀¬"idmhPe"S"><·;=q"S‡J.V

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

সংশ্লিষ্ট 05AB1E ফাংশন (প্রতিটি ফাংশনের প্রথম চর ব্যবহার করে) এর সাথে প্রতিটি ভাষার ফাংশন মানচিত্র করে এবং তারপরে ফলাফলটি স্ট্রিং 05AB1E কোড হিসাবে কার্যকর করে।



2

পাইথন 2 , 131 125 122 121 118 117 115 বাইট

v=0;o=""
for x in input().split("x")[0].split():
 if"Q">x:o+=`v`
 else:v+=(1,-1,v,-v/2.)['idmh'.find(x[0])]
print o

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

@ রডকে ধন্যবাদ দিয়ে -6 এবং -3

-3 এবং -2 @Etene ধন্যবাদ সহ

-1 দিয়ে প্রতিস্থাপন "Pri"==xকরে"P"in x


আপনি পারেন splitউপর "exit"ও 1st ব্লক পেতে, পরিবর্তে breaking 4 বাইট সংরক্ষণ
ডান্ডা

1
আপনি আশেপাশের বন্ধনীগুলি সরাতে পারেন 'idmh'এবং findপরিবর্তে ব্যবহার করতে পারেন index, এটি কয়েকটি বাইট সংরক্ষণ করতে পারে
এটিনি

@ রড - আসলে এটি আরও খানিকটা এগিয়ে নিয়ে exযেতে পারে এবং অন্য 2 টি সংরক্ষণ করতে ভাগ করতে পারে
এলপেড্রো

আপনি এটির বদলে v=(v+1,v-1,v*2,v/2.)নিতে পারেন v+=(1,-1,v,-v/2.)এটি কাজ করা উচিত, যদিও পরীক্ষিত হয়নি
রড

@ রড - এটি সম্পর্কে ভেবেছিলেন তবে কীভাবে এটি করবেন তা কাজে লাগাতে পারেনি half। খুবই সোজা! ধন্যবাদ।
এলপেড্রো

2

পাইথন 3 , 110 91 82 বাইট

exit একটি ত্রুটি সহ প্রোগ্রামটি প্রস্থান করার কারণ হবে।

x=0
for c in input():c=='P'==print(x,end='');x+=(1,-1,x,-x/2,c,0)['ndmhx'.find(c)]

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


9 বাইট সংরক্ষণ করতে আপনার পরিবর্তনশীল নামগুলি ছোট করুন। i='x+=1';d='x-=1';...এবং তারপরে আপনার execকলে, এটিকে পরিবর্তন করুনexec(eval(c[0]))
mypetlion

@ মাইপেটলিয়ন ধন্যবাদ, তবে আমি আরও একটি ভাল উপায় খুঁজে পেয়েছি।
mbomb007

আমি মনে করি এটি বৈধ: 82 বাইট
লিন

@ লিন এটা দুর্দান্ত! আমি printবিবৃতিতে শর্ট সার্কিটের দুর্দান্ত উপায়টি ভাবতে পারি না !
mbomb007

2

জাভাস্ক্রিপ্ট (ES6), 83 79 বাইট

@ ল 4 এম 2 ধন্যবাদ 4 বাইট সংরক্ষণ করা

আউটপুট বা খালি স্ট্রিংগুলির সাথে নির্দেশাবলীর পরিবর্তে প্রতিস্থাপন করা হয়।

s=>s.replace(/\S+./g,w=>m<s?'':w<{}?m:(m+={d:-1,e:w,i:1,m}[w[0]]||-m/2,''),m=0)

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

মন্তব্য

s =>                       // given the input string s
  s.replace(/\S+./g, w =>  // for each word w in s:
    m < s ?                //   if m is a string:
      ''                   //     ignore this instruction
    :                      //   else:
      w < {} ?             //     if w is 'Pri' ({} is coerced to '[object Object]'):
        m                  //       output the current value of m
      : (                  //     else:
          m +=             //       add to m:
            { d: -1,       //         -1 if w is 'dec'
              e: w,        //         w  if w is 'exit' (which turns m into a string)
              i: 1,        //         1  if w is 'inc'
              m            //         m  if w is 'mult'
            }[w[0]]        //       using the first character of w to decide
            || -m / 2,     //       or add -m/2 (for 'half') if the above result was falsy
        ''),               //       do not output anything
    m = 0                  //   m = unique register of our mighty CPU, initialized to 0
  )                        // end of replace()

s=>s.replace(/\S+./g,w=>k<s?'':w<{}?k:(k+={d:-1,e:w,i:1,m:k}[w[0]]||-k/2,''),k=0)
l4m2

@ l4m2 এটি w<{}খাঁটি মন্দ: p
Arnauld

s=>s.replace(/\S+./g,e=>m<s?'':e<{}?m:(m+={d:-1,e,i:1,m}[e[0]]||-m/2,''),m=0)এছাড়াও কাজ
l4m2

2

কাঠকয়লা , 37 35 বাইট

≔⁰ηF⎇№θx…θ⌕θxθ≡ιn≦⊕ηd≦⊖ηm≦⊗ηh≦⊘ηrIη

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। @ রিকহিচককের উত্তরটি দ্বারা অনুপ্রাণিত। ব্যাখ্যা:

≔⁰η

পরিবর্তনশীল সাফ করুন।

F⎇№θx…θ⌕θxθ≡ι

xযদি একটি থাকে তবে ইনপুটটি কেটে দিন , তারপরে লুপ করুন এবং ইনপুটটির প্রতিটি অক্ষরটি স্যুইচ করুন।

n≦⊕η

ni n ভেরিয়েবলটি তৈরি করে।

d≦⊖η

d d ভেরিয়েবলটি তৈরি করে।

m≦⊗η

m মি ভেরিয়েবলটি দুটি দ্বারা ভাগ করে (অর্থাত ডাবলস)।

h≦⊘η

h এইচ ভেরিয়েবল alves।

rIη

rp r স্ট্রিংয়ে ভেরিয়েবল কাস্ট লাগায়।


1
@ রিকহিচকক দুঃখিত, যথেষ্ট পরিমাণে এটি পরীক্ষা করে নি। আমি একটি কার্যনির্বাহী পেয়েছি কিন্তু এটি আমার একটি বাইট খরচ।
নীল

2

জাভাস্ক্রিপ্ট (ES6), 77 75 বাইট

(ধার করা ( চুরি ) @ আর্নউল্ডের mভেরিয়েবল নাম হিসাবে ব্যবহারের কৌশল , 2 বাইট সংরক্ষণ করুন))

f=([c,...s],m=0)=>c<'x'?(c=='P'?m:'')+f(s,m+({h:-m/2,d:-1,n:1,m}[c]||0)):''

নির্দেশ অনুসারে স্বতন্ত্র অক্ষর সন্ধান করে এবং বাকিগুলি উপেক্ষা করে পুনরাবৃত্তভাবে স্ট্রিংটি হাঁটা:

  • n: ইনক
  • d: ডিস
  • মি: বহু
  • h: অর্ধেক
  • পি: প্রিয়া
  • x: প্রস্থান

সত্য যে সুবিধা নেয় undefinedচেয়ে না কম তন্ন তন্ন বেশী 'x', পংক্তির শেষে স্টপেজ পুনরাবৃত্তির ঘটাচ্ছে বা যখন এটি encounters 'x'মধ্যে প্রস্থান


1
আপনার মুছে ফেলা মন্তব্যটির অনুসরণ করে আমি অবশ্যই আর উত্তর দিতে পারি না, আমি সংশোধন কোডের (লিও!) লিঙ্কটি আটকাতে ভুলে গিয়েছিলাম তবে আমি একটি নতুন পদ্ধতির সন্ধান পেয়েছি যা যাইহোক আমার মূল প্রয়াসের চেয়ে 2 বাইট কম।
নীল

1

জাভাস্ক্রিপ্ট (নোড.জেএস) , 107 বাইট

f=s=>s.split` `.map(([o])=>F?0:o=="i"?i++:o=="d"?i--:o=="m"?i*=2:o=="h"?i/=2:o=="P"?S+=i:F=1,F=i=0,S="")&&S

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



এটি হিসাবে এটি 105 বাইট আফিক হিসাবে গণনা করা উচিত, যতক্ষণ না আপনার ফাংশনটি নিজেকে কল করে না আপনি গণনা করার প্রয়োজন নেইf=
ব্রায়ান এইচ।

1

জাভাস্ক্রিপ্ট (নোড.জেএস) , 91 বাইট

_=>_.split` `.map(o=>o<{}>!_?S+=+i:o<"e"?i--:o<"f"?++_:o<"i"?i/=2:o<"j"?i++:i*=2,i=S="")&&S

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

জাভাস্ক্রিপ্ট (নোড.জেএস) , 96 বাইট

_=>_.split` `.map(o=>F?0:o<"Q"?S+=i:o<"e"?i--:o<"f"?F=1:o<"i"?i/=2:o<"j"?i++:i*=2,F=i=0,S="")&&S

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

জাভাস্ক্রিপ্ট (নোড.জেএস) , 99 বাইট

s=>s.split` `.map(_=>eval('++i7--i7++e7u+=+i7i*=27i/=2'.split(7)[Buffer(e+_)[0]%11%6]),e=i=u='')&&u

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




1

লুয়া, 207 বাইট

s=0;n=0;for a in io.read():gmatch'.'do if s==0 then s=1;n=a=='i'and n+1 or a=='d'and n-1 or a=='m'and n*2 or a=='h'and n/2 or n;if a=='P'then print(n)elseif a=="e"then break end elseif a==' 'then s=0 end end

1

পাইথন 3 , 114 110 109 116 বাইট

আসলে পাইথন 2 এ দুটি বাইট কম নেওয়া হত কারণ execএটি একটি বিবৃতি এবং প্রথম বন্ধনী প্রয়োজন নেই ...

  • এলপিড্রোর জন্য 4 টি অতিরিক্ত বাইট সংরক্ষণ করা হয়েছে

  • findত্রুটি -1 প্রদান করে, যা পরে সূচি হিসাবে ব্যবহার করা যেতে পারে তার সুযোগ নিয়ে একটি অতিরিক্ত বাইট সংরক্ষণ করে

  • +7 বাইট কারণ আমি নো-লাইনের নিয়মটি লক্ষ্য করি নি :(

i=0;exec(";".join("i+=1 i-=1 i*=2 i/=2 print(i,end='') exit()".split()["idmhP".find(h[0])]for h in input().split()))

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

পাইথন কোডের এক টুকরোতে প্রতিটি ইনপুট শব্দের প্রথম অক্ষর মানচিত্র। এগুলি পরে সংক্ষিপ্ত এবং execএড হয়।

বেশ সহজ সরল পদ্ধতি, সম্ভবত এটি আরও কিছুটা গল্ফ করা যেতে পারে। সমস্যাটি বেশিরভাগ সম্ভাব্য সংক্ষিপ্ত আকারের মধ্যে সংক্ষিপ্ততম ফর্মটি সন্ধান করতে থাকে ...


112 এটি অনলাইনে চেষ্টা করুন! যদি আপনার কাছে স্পেস সেপারেটেড স্ট্রিং হিসাবে কমান্ড থাকে এবং এটি বিভক্ত হয়।
এলপিড্রো

1
১১০ আসলে বন্ধনীগুলি যেতে পারে এটি অনলাইনে চেষ্টা করে দেখুন!
এলপেড্রো

এটি সঠিক আউটপুট দেয় না। প্রশ্নটি বলছে যে আপনাকে অবশ্যই বিভাজকগুলি ছাড়াই মুদ্রণ করতে হবে, সুতরাং আপনার প্রয়োজন print(i,end='')। চতুর্থ পরীক্ষার কেস দেখুন।
mbomb007

আমি লক্ষ্য করিনি, আমি এটি ঠিক করে দেব। ধন্যবাদ!
etene

আপনি যখন এটিকে ঠিক করেছেন তখন @Etene মন্তব্য করবেন এবং আমি আমার ডাউনটি সরিয়ে ফেলব।
mbomb007

1

রুবি + -na, 81 73 65 বাইট

x=0;$F.map{|w|eval %w{x+=1 x-=1 1/0 $><<x x*=2 x/=2}[w.ord%11%6]}

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

অনেকটাই অকপট. প্রতিটি শব্দের প্রথম অক্ষরের জন্য, সংশ্লিষ্ট কমান্ডের স্ট্রিং এবং evalএটি সন্ধান করুন। পূর্ণসংখ্যা বিভাগ ব্যবহার করে এবং exitsএকটি নিক্ষেপ করে ZeroDivisionError

-5 বাইট: .ord%11%6স্ট্রিং লুকের পরিবর্তে ব্যবহার করুন । ক্রেডিট ব্যবহারকারী 202729 এ যায়

-3 বাইট: .ordকেবল স্ট্রিংয়ের প্রথম চরিত্রটি বিবেচনা করে, তাই আমি এড়িয়ে যেতে পারি [0]

-8 বাইট: কিরিল এলকে-a ধন্যবাদ স্বয়ংক্রিয়ভাবে ইনপুট বিভক্ত করতে পতাকা ব্যবহার করুন


1
আপনি যোগ করে আরও বেশি বাইট সংরক্ষণ করতে পারবেন -aবিকল্প মত, আপনার জন্য autosplit করতে এই
কিরিল এল

1

ইমোজিকোড , 270 বাইট

🐖🔥🍇🍮c 0🔂j🍡💣🐕🔟 🍇🍊😛j🔤inc🔤🍇🍮c➕c 1🍉🍋😛j🔤dec🔤🍇🍮c➖c 1🍉🍋😛j🔤mult🔤🍇🍮c✖️c 2🍉🍋😛j🔤half🔤🍇🍮c➗c 2🍉🍋😛j🔤Pri🔤🍇👄🔡c 10🍉🍓🍇🍎🍉🍉🍉

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

🐋🔡🍇
🐖🔥🍇
🍮c 0
🔂j🍡💣🐕🔟 🍇
🍊😛j🔤inc🔤🍇🍮c➕c 1🍉
🍋😛j🔤dec🔤🍇🍮c➖c 1🍉
🍋😛j🔤mult🔤🍇🍮c✖️c 2🍉
🍋😛j🔤half🔤🍇🍮c➗c 2🍉
🍋😛j🔤Pri🔤🍇👄🔡c 10🍉
🍓🍇🍎🍉🍉🍉🍉

🏁🍇
 🔥🔤inc inc inc dec Pri exit🔤
😀🔤🔤
 🔥🔤dec inc mult inc inc Pri🔤
😀🔤🔤
 🔥🔤inc inc inc mult half Pri exit inc🔤
😀🔤🔤
 🔥🔤inc Pri inc Pri inc Pri exit half mult🔤
😀🔤🔤
 🔥🔤Pri exit🔤
😀🔤🔤
 🔥🔤inc half Pri exit🔤
🍉

0

SNOBOL4 (CSNOBOL4) , 165 বাইট

	P =INPUT ' exit ' 
	x =0
S	P LEN(1) $ L ARB ' ' REM . P	:S($L)F(end)
i	X =X + 1	:(S)
d	X =X - 1	:(S)
P	O =O X		:(S)
m	X =X * 2	:(S)
h	X =X / 2.	:(S)
e	OUTPUT =O
END

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

স্থূল.

	P =INPUT ' exit ' 				;* append ' exit ' to the input to guarantee that the program will stop
	x =0						;* initialize x to 0 else it won't print properly if the program is 'Pri'
S	P LEN(1) $ L ARB ' ' REM . P	:S($L)F(end)	;* set L to the first letter of the word and goto the appropriate label
i	X =X + 1	:(S)
d	X =X - 1	:(S)
P	O =O X		:(S)				;* append X to the output string
m	X =X * 2	:(S)
h	X =X / 2.	:(S)				;* divide by 2. to ensure floating point
e	OUTPUT =O					;* print whatever's in O, which starts off as ''
END

0

সি # (.নেট কোর), 186 বাইট

class P{static void Main(string[]a){int v=0;foreach(var s in a){var i=s[0];if(i=='i')v++;if(i=='d')v--;if(i=='m')v*=2;if(i=='h')v/=2;if(i=='P')System.Console.Write(v);if(i=='e')break;}}}

আপনি কয়েকটি সাধারণ কাজ করে 26 বাইটস শেভ করতে পারেন, যেমন একটি এএসসিআইআই টেবিলের iসাহায্যে ঘোষণা করা v, যাতে আপনি অল্প সংখ্যক ব্যবহার করতে পারেন, ifগুলি পুনরায় সাজানো এবং তারপরে একটি টের্নারি ব্যবহার করতে পারেন : class Z{static void Main(string[]a){int v=0,i;foreach(var s in a){i=s[0]%'d';if(i==1)break;if(i>9)System.Console.Write(v);else v=i<1?v-1:i<5?v/2:i<6?v+1:v*2;}}}(পিএস এটি কীভাবে কাজ করে এবং কীভাবে ব্যবহার করবেন তার একটি ব্যাখ্যা) এটি (যেমন কমান্ড লাইন
আরোগুলি

(ওহ যে বিব্রতকর! এর %50পরিবর্তে আমার ব্যবহার করা উচিত %'d')
ভিজুয়েলমেলন

0

পার্ল 5 -a , 61 বাইট

eval'$,'.qw(++ -- ;exit ;print$,||0 *=2 /=2)[(ord)%11%6]for@F

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

@ User202729 এর ord%11%6কৌশলটি চুরি করেছে

কিভাবে?

-a            # split the input by whitespace, store in @F
eval          # Execute the string that results from:
'$,'          # $, (the accumulator)
.             # appending:
qw(           # create an array for the following whitespace separated values:
++ --            # operators for inc & dec
;exit            # exit
;print$,||0      # Pri  (||0 ensures that 0 is output if accumulator is null
*=2 /=2)         # mult div
[(ord)%11%6] # @user202729's trick selects one of the preceding operations
for@F        # for every term input

0

পাইথ, 44 বাইট

Vmx"idmhPe"hdcwd=Z@[hZtZyZcZ2ZZ)NIqN4pZIqN6B

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

ব্যাখ্যা

Vmx"idmhPe"hdcwd=Z@[hZtZyZcZ2ZZ)NIqN4pZIqN6B   ## full program
             cwd                               ## split input on space
Vmx"idmhPe"hd                                  ## iterate through list of numbers corresponding to operators
                =Z@[hZtZyZcZ2ZZ)N              ## assign the variable Z (initialliy Zero) it's new value
                                 IqN4pZ        ## print Z if the current operator is "Pri" (4)
                                       IqN6B   ## break if the current operator is "exit" (5)

0

টিআই-বেসিক, 112 বাইট

এটি এমন কিছু অনুমানের সুবিধা গ্রহণ করে যা আফাইক পুরোপুরি গ্রহণযোগ্য। এক নম্বর হ'ল মৃত্যুদন্ড কার্যকর হওয়ার আগে সমস্ত ভেরিয়েবল শূন্যে শুরু করা হয়; দুই নম্বর যে ইনপুট মাধ্যমে নেওয়া হয় Ans

Ans+" E→Str1
While 1
I+4→I
sub(Str1,I-3,1→Str2
A+(Ans="I")-(Ans="D
If inString("MH",Str2
Then
I+1→I
2AAns+A/2(1-Ans
End
If Str2="P
Disp A
If Str2="E
Stop
Ans→A
End

0

জাভা (ওপেনজেডিকে 8) , 164 বাইট

a->{int c=0;for(String g:a.split(" ")){char b=g.charAt(0);if(b==105)c++;if(b==100)c--;if(b==109)c*=2;if(b==104)c/=2;if(b==80)System.out.print(c);if(b==101)return;}}

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

উপরে আমার সমাধান যা পূর্ণসংখ্যার দিকে ঘুরছে, তবে নীচে আমার সমাধান যা দশমিকগুলি পরিচালনা করে। জাভা মুদ্রণের দ্বিগুণ উপায় স্কোরটিতে আরও 55 টি বাইকে যুক্ত করে। আমি দ্বিতীয় লাইনে কোডটিকে আরও পঠনযোগ্য করে তুলতে আমি নতুন লাইনগুলি রেখেছি কারণ এটি মূলত একই অতিরিক্ত সমাধান এবং একটি আমদানির বিবৃতি সহ একই সমাধান।

জাভা (ওপেনজেডিকে 8) , 219 বাইট

a->{
double c=0;
for(String g:a.split(" ")){
char b=g.charAt(0);
if(b==105)c++;
if(b==100)c--;
if(b==109)c*=2;
if(b==104)c/=2;
if(b==80)System.out.print(new DecimalFormat("0.#").format(c));
if(b==101)return;}}

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


0

সি (জিসিসি) , 120 114 111 বাইট

-6 বাইট সিলিংক্যাট ধন্যবাদ।

x,d;f(char*s){for(x=0;s>1;s=index(d^1?s:"",32)+1)d=*s-100,x+=d?d==5:-1,x*=d^9?d^4?1:.5:2,d+20||printf("%d",x);}

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

124 বাইট

ভাসমান-পয়েন্ট সংস্করণ:

d;f(char*s){for(float f=0;s>1;s=strchr(s,32)+1)d=*s-80,f+=d==25,f-=d==20,f*=d^29?d^24?1:.5:2,s=d^21?s:"",d?:printf("%f",f);}

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

আমি এমন কোনও সংস্করণ নিয়ে মাথা ঘামাইনি যা আমার চারদিকে নেমে আসে, তবে 0-এর জন্য ব্যতিক্রম করে দেয়, যা অনুমোদিত হবে, যদি আমি মন্তব্য-চেনটি সঠিকভাবে বুঝতে পারি।


0

33 , 62 বাইট

s'i'{1a}'d'{1m}'m'{2x}'h'{2d}'P'{o}'e'{@}It[mzsjk""ltqztItn1a]

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

এই প্রোগ্রামটি নিউলাইনগুলি দ্বারা সীমাবদ্ধ নির্দেশাবলী গ্রহণ করে

ব্যাখ্যা:

It[mzsjk""ltqztItn1a]
  [mz            n1a] | Forever
It    jk       It     | - Get the first character of the next instruction
            qz        | - Call the function declared previously
     s  ""lt  t       | - Make sure we don't lose track of the variable

সেগমেন্টের আগে কোডটি সমস্ত ক্রিয়াকে সংজ্ঞায়িত করে।

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