জরুরী করিডোর করুন


46

কিছু দেশগুলিতে রাস্তাগুলিতে কীভাবে জরুরী করিডোর তৈরি করতে হয় সে সম্পর্কে সুপারিশ বা আইন রয়েছে যার দিকে একাধিক লেন রয়েছে। (নীচে আমরা কেবল যে লেনগুলি ভ্রমণ করছি সেদিকে যাচ্ছি সেগুলি বিবেচনা করি)) জার্মানিতে এই নিয়মগুলি রয়েছে:

  • যদি কেবল একটি লেন থাকে তবে প্রত্যেককে ডানদিকে এমনভাবে চালনা করা উচিত যাতে উদ্ধারকারী যানগুলি বাম দিকে যেতে পারে।
  • যদি দুটি বা ততোধিক লেন থাকে তবে বাম দিকে সর্বাধিক গলির গাড়িগুলি বাম দিকে চালানো উচিত এবং অন্য প্রত্যেককে ডানদিকে যেতে হবে।

চ্যালেঞ্জ

N>0নিয়মিত লেনগুলির সংখ্যা দেওয়া , যখন N+1এএসসিআইআই অক্ষরের একটি স্ট্রিং ব্যবহার করে জরুরি করিডোরটি তৈরি হয় তখন লেনগুলির বিন্যাসটি আউটপুট করুন । আপনাকে অবশ্যই ASCII কোড থেকে কোন দুটি অক্ষর ব্যবহার করতে পারেন 33পর্যন্ত 126জরুরি অবস্থা দালান বোঝাতে এক, এবং গাড়ির বাচক জন্য। চলমান বা শীর্ষস্থানীয় স্থান, লাইন ব্রেক ইত্যাদি অনুমোদিত s

উদাহরণ

এখানে আমরা Eজরুরি করিডোর এবং Cগাড়িগুলির জন্য ব্যবহার করছি ।

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

18
আমি এর জন্য পড়ব না! আপনি স্নিগ্ধ সাপটি ভেদ করে আপনার নিজের একটি গলি সন্ধান করছেন।
orlp

16
@ম্যানস আমি সত্যিই ভাবি না যে এর জন্য flawr আমাদের সহায়তা প্রয়োজন: পি
orlp

8
+1 কারণ এটি জার্মানিতে আসলে কাজ করে। গত সপ্তাহান্তে পরিস্থিতি ছিল।
এলপেড্রো

10
@ msh210 আমি মনে করি জার্মান ডাব্লুপি পৃষ্ঠাগুলির চিত্রগুলি এটি সর্বোত্তমভাবে ব্যাখ্যা করেছে।
flawr

9
তুমি জানো, প্রথমে এই সঙ্গে একটি টু-পয়েন্ট চ্যালেঞ্জ মতো লাগছিল Cএবং Eকিন্তু এত চমৎকার এই প্রতিদ্বন্দ্বিতা সম্ভব পন্থা আছে! C=1/ E=2অথবা C=2/ E=3মত শীর্ষ উত্তর মত গাণিতিক ক্রিয়াকলাপ ব্যবহার করে; ব্যবহার C=0/ E=1সাথে 10^(n-1); দশমিক বিন্যাস দ্বারা C=0/ ব্যবহার করে ; ব্যবহার করে / ব্যবহার করে ; ইত্যাদি ইত্যাদি চ্যালেঞ্জের জন্য এতগুলি অনন্য সম্ভাবনা যা প্রথমে বিন্দুটিকে দেখায় looked খুব খারাপ আমি একবারে +1 করতে পারি। ;)E=.0.0C=1E=--1
কেভিন ক্রুইজসেন

উত্তর:


29

পাইথন 2, 29 26 বাইট

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

উদাহরণ:

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

আপনাকে n = 1 ক্ষেত্রে 21 আউটপুট দিতে হবে
ড্যানিয়েলইন্ডি

1
@ ড্যানিয়েল ইন্ডি :( ঠিক হয়েছে তবে এখন এটি কুৎসিত
orlp

এখনও একটি খুব সৃজনশীল সমাধান :)
flawr

1
@ অরলপ দুঃখিত :) তবে এখনও একটি দুর্দান্ত সমাধান :)
ড্যানিয়েলইন্ডি

3
10**n*97/30-1/n*9f(5) == 323333ইত্যাদি প্রদান করে অন্য বাইট সংরক্ষণ করে
লিন

28

পাইথন 3, 35 33 বাইট

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

সম্পাদনা: @ বায়ান্নের অনুস্মারককে f=ধন্যবাদ 2 বাইট সংরক্ষণ করতে ছাড়ছে

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

এটি কল্পনা করতে:

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

আউটপুট:

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

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

পাইথন 3, 40 বাইট

একটি সরল সমাধান:

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

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


2
আমি মনে করি 'সোজা' সমাধানটির পরে অপ্রয়োজনীয় সাদা স্থান রয়েছেlambda N:
কেউ

@ সোনাও আমি এটি সম্পর্কে অবগত ছিলাম না, ধন্যবাদ।
গুয়িয়াং কিন


14

জাপট, 5 4 বাইট

qগাড়ি এবং +করিডোরের জন্য ব্যবহার ।

ç¬iÄ

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

অলিভারকে ক্রেডিট যারা গল্ফ করেছিল আমার সাথে একই সময়ে 4 বাইট বন্ধ off


ব্যাখ্যা

একটি সংক্ষিপ্ত সমাধান কিন্তু একটি জটিল ব্যাখ্যা!

সোজা জিনিসগুলি প্রথমে: çপদ্ধতিটি যখন পূর্ণসংখ্যার সাথে প্রয়োগ করা হয় তখন তার স্ট্রিং আর্গুমেন্টটিকে সেই সংখ্যাটি পুনরাবৃত্তি করে। iপদ্ধতি 2 আর্গুমেন্টগুলি (নেয় s& n) এবং টিপে sসূচিতে nস্ট্রিং এটা প্রয়োগ সে সম্পর্কে।

ব্যবহৃত দুটি ইউনিকোড শর্টকাটগুলি প্রসারিত করা আমাদের দেয় çq i+1, যা জেএসে স্থানান্তরিত হলে ইনপুটটি U.ç("q").i("+",1)কোথায় Uথাকে। সুতরাং আমরা বার q Uবার পুনরাবৃত্তি করছি এবং তারপরে +সূচক 1 এ একটি সন্নিবেশ করছি ।

চূড়ান্ত কৌশলটি হ'ল, জাপটের সূচক মোড়কের জন্য ধন্যবাদ, কখন U=1, সূচকটি iসন্নিবেশ করানো হবে , আপনি যে মানটির জন্য এটি খাওয়ান ।+0n


আমি ç0 iQ16 বাইটের জন্য পোস্ট করতে যাচ্ছিলাম , তবে আপনি এটি ব্যবহার করা ভাল।
অলিভার

ধন্যবাদ, অলিভার যদিও এর মধ্যে এটি 5 বাইটে নেমে গেছে।
শেগি

1
ç¬iÅ4 বাইটের জন্য;) আমি জ্যাপকে এত বেশি কখনও আপত্তি করি নি।
অলিভার

আমি কেবল :) এর Äপরিবর্তে একই কাজটি করতে যাচ্ছিলাম Å:)
শেগি

7

আর, 50 বাইট

-11 জিউসেপ্পিকে ধন্যবাদ!

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

জরুরি করিডোরের জন্য আউটপুট 1 এবং সাধারণ গলির জন্য 2

আমার প্রচেষ্টা, 61 বাইট

এখানে দেখার মতো অভিনব কিছু নেই, তবে আসুন স্কোরবোর্ডে আর পাব =)

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

ব্যবহার:

q(5)
CECCCC

21 = 12 + 9 ব্যবহার করে 8 বাইট সংরক্ষণ করুন এবং সত্য / মিথ্যা বলার
জেসি


6

পাইথন 2, 30 29 28 বাইট

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

এর 3পরিবর্তে Cএবং .পরিবর্তে মুদ্রণ করুন E

ব্যাখ্যা:

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

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

পাইথন 2, 33 32 31 29 28 বাইট

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

1পরিবর্তে Cএবং -পরিবর্তে প্রিন্ট করুন E

-2 ধন্যবাদ বাইট @ovs
-1 বাইট @xnor ধন্যবাদ ।

ব্যাখ্যা:

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

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
আপনার 10/3এক 17 এ ব্যর্থ হয়
জো কিং

1
@ জোকিং আমি কেবল ওপি দিয়ে স্পষ্ট করে দিয়েছি এবং তিনি বলেছিলেন " একটি অন্তর্নির্মিত ধরণের বিল্ট ব্যবহার করা যথেষ্ট " "যার অর্থ n=16আপনার অন্তর্নির্মিত বিল্ট-ইন 64৪-বিট যথেষ্ট কিনা, বা এই ক্ষেত্রে n=16যখন দশমিক মান হতে পারে ' টি ডিফল্টরূপে 15 দশমিকের বেশি সংখ্যাকে ধরে রাখা যথেষ্ট। (একই সাথে জাভা, সি #। নেট ইত্যাদি ইত্যাদি স্বেচ্ছাসেবী সংখ্যা আকারের ভাষা ব্যবহার করে অন্যান্য উত্তরগুলির অনেকগুলি ক্ষেত্রেই প্রযোজ্য)
কেভিন ক্রুইজসেন


5

ব্রেনফাক , 42 বাইট

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

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

চার্ট কোড হিসাবে আউটপুট নেয় এবং আউটপুটগুলি Vসাধারণ লেন এবং Wসাফ লেন হওয়া হিসাবে । (সহজে পরীক্ষা করার জন্য, আমি এটির ,একটি সংখ্যা দিয়ে প্রতিস্থাপন করার পরামর্শ দিই +)

কিভাবে এটা কাজ করে:

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

অক্টাভা (ম্যাটল্যাব *), 31 30 28 27 22 বাইট

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

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

প্রোগ্রামটি নিম্নলিখিত হিসাবে কাজ করে:

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

এখানে ব্যবহৃত কৌশলটি 0:nইনপুট ১ এর চেয়ে বড় কিনা তা পরীক্ষা করে বীজের অ্যারেটি এক্সএনওরিং করা হয় ফলস্বরূপ, বীজটি n>1একটি লজিক্যাল অ্যারেতে রূপান্তরিত হয় [0 1 (0 ...)]যখন n==1বীজটি বিপরীত হয়ে যায় [1 0], প্রয়োজনীয় বিপর্যয় অর্জন করে।

বাকিগুলি পর্যাপ্ত সংযুক্ত গাড়ি সহ কেবল বীজকে একটি স্ট্রিংয়ে রূপান্তর করছে।


(*) টিআইও লিঙ্কটিতে ফুটারের মন্তব্যে একই সংখ্যক বাইটস যেমন ম্যাটল্যাব এবং অষ্টাভেতে কাজ করে তার জন্য বিকল্প সমাধান অন্তর্ভুক্ত রয়েছে তবে এটি 'ই' এবং 'এর পরিবর্তে' 0 'এবং' 1 'এর ক্রমিকায় পরিণত হয় সি '। সম্পূর্ণতার জন্য, বিকল্পটি হ'ল:

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

  • n==1~=0:1পরিবর্তে ব্যবহার করে 1 বাইট সংরক্ষণ করা হয়েছে 0:1~=(n<2)। অরিজিনালটি ~=রয়েছে <, তাই আসল বন্ধনীগুলি, তবে মনে হয় ~=এবং ==উপস্থিতির ক্রম হিসাবে পরিচালনা করা হয় তাই 1 এর সাথে তুলনা করে আমরা একটি বাইট সংরক্ষণ করতে পারি।

  • যেখানে অস্বীকার করা 2:nহয় সেখানে পরিবর্তন করে 2 বাইট সংরক্ষণ করা হয়েছে । এটি এক জোড়া বন্ধনী সংরক্ষণ করে। আমরা পরিবর্তন করতে হবে ~=করতে ==যে এটি পরে অস্বীকার করা হবে হিসাব নেবেন।

  • <আবার ব্যবহার করে 1 বাইট সংরক্ষণ করা হয়েছে। দেখা যাচ্ছে যে সর্বোপরি <একইরূপ নজির রয়েছে ==। কার্যকর করার সঠিক ক্রম নিশ্চিত করার <আগে গণনা স্থাপন ==

  • দুটি পৃথক অ্যারে তৈরি না করে 5 বাইট সংরক্ষণ করা হয়েছে। পরিবর্তে XNOR তুলনা যে কোনও উপায়ে একটি একক পরিসরকে লজিকালে রূপান্তর করবে।


খুব চতুর :-)
স্টিভি গ্রিফিন

@ স্টেভিগ্রিফিন ধন্যবাদ :)। আরও 5 বাইট আরও কড়াতে পরিচালিত।
টম কার্পেন্টার



4

পাইথন 3, 32 বাইট

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

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

হয় এফ স্ট্রিং এক্সপ্রেশন ব্যবহার করে হয় ফর্ম্যাট করতে 'E'বা 'CE'ডানদিকে প্যাডযুক্ত 'C'যাতে এর প্রস্থ থাকে 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

ব্রেন-ফ্লাক , 100 66 বাইট

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

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

"জরুরী লেন এবং !সাধারণ লেন হিসাবে ব্যবহার করে ।


সমস্ত জিনিসের এই ভাষাটি ব্যবহার করার জন্য +1। এক্সডি
অ্যালেক্স

2
@ অ্যালেক্স, আচ্ছা, ব্রেন-ফ্লাক এপ্রিল মাসের ভাষা
জো কিং

সিরিয়ালি নাকি দেরী এপ্রিল ফুলের রসিকতা? মাসের ভাষাগুলি কোথায় নির্বাচিত হয়?
অ্যালেক্স 13

@Alex মনোনয়ন এবং ভোট দেওয়ার এখানে , এবং তারপর এক মাসে নির্দিষ্ট পোস্টে যেমন তৈরি করা হয় এই এক
কামিল Drakari

ওহ, এটি এই প্ল্যাটফর্মে রয়েছে। আমি, ধন্যবাদ! :-)
অ্যালেক্স


4

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

Î>∍1I≠ǝ

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

0 সি এবং 1 হ'ল ই।

ব্যাখ্যা

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

ওহ আপনি বোকা শেয়াল। $<×TìsiRআমি ভাবছিলাম কিভাবে ছিল।
ম্যাজিক অক্টোপাস উর্ন

@ ম্যাজিক অ্যাক্টপাস ইউরান এটি একটি আকর্ষণীয় পদ্ধতির! আমি "যদি" নির্মাণের সাথেও স্থির ছিলাম তবে এটির জন্য কমপক্ষে 3 বাইট প্রয়োজন, তাই আলাদা পদ্ধতির প্রয়োজন :-)
কলডো

05AB1E এর নতুন সংস্করণে গল্ফ করা 1Iযেতে পারে $
কেভিন ক্রুইজসেন 15

5 বাইট (উত্তরাধিকার সংস্করণেও কাজ করে)।
কেভিন ক্রুইজসেন

4

এপিএল (ডায়ালগ ইউনিকোড) , 21 17 16 বাইট

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

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

আরও একটি বাইটের জন্য 4 বাইট এবং অ্যাডাম সংরক্ষণ করার জন্য এরিককে ধন্যবাদ।

কিভাবে?

(-≠∘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)প্রথম বন্ধনে থাকার দরকার নেই। এবং যদি আপনি একটি মৌন ফাংশন 4 বাইট সংরক্ষণ করতে পারেন: (⊢×1<⊢)⌽'E',⍴∘'C'
এরিক আউটগল্ফার

@ এরিকথ আউটগলফার ধন্যবাদ! আজ আমার ক্লাস ছিল বলে পোস্ট করার পরে স্বাচ্ছন্দ্যে যাওয়ার সময় আমার ছিল না। আমি বাড়ি এলে সম্পাদনা করব।
জে। স্যালি 21


⎕io = 0 দিয়ে 15 বাইট:'CE'[1(≠=∘⍳+)⎕]
ngn

@ngn আমি এমনকি পারি না ... আপনি কি আমাকে পরীক্ষার মামলার সাথে একটি টিআইও লিঙ্ক পেতে পারেন? এটিকে কাজ করে বলে মনে হচ্ছে না ...
জে.সাল্লি

4

হাস্কেল , 35 33 32 বাইট

অ্যাংসের জন্য 2 বাইট সংরক্ষণ করা হয়েছে, 1 বাইট লিনকে ধন্যবাদ রক্ষা করেছে

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

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

হাস্কেল , 32 30 29 বাইট

এটি শূন্য সূচকযুক্ত তাই এটি চ্যালেঞ্জের সাথে সম্মতি দেয় না

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

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

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

এটি কাজ করে না কারণ আউটপুট একটি স্ট্রিং হওয়া প্রয়োজন

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

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

এখানে আমরা 2জরুরী করিডোরের 1জন্য, গাড়ির জন্য স্ট্রিংয়ের পরিবর্তে নম্বরগুলি ব্যবহার করি । আমরা 110 দ্বারা গুণিত এবং যোগ করে শেষ পর্যন্ত একটি যুক্ত করতে পারি 1। এটি সস্তা, কারণ আমাদের কনটেনটেশন এবং স্ট্রিং আক্ষরিক জন্য সমস্ত বাইটের জন্য অর্থ প্রদান করতে হবে না।

এর 0পরিবর্তে এটি ব্যবহার করা সস্তা হবে 1তবে আমাদের নেতৃস্থানীয় শূন্যগুলি দরকার, যা শেষের দিকে ছাঁটাই হয়ে যায়।


((blah)!!)(!!)$blahআপনার প্রথম দুটি উত্তর একটি বাইট সংরক্ষণ করতে পারেন ।
লিন

@ লিন ধন্যবাদ! আমি আগে এটি করার চেষ্টা করেছি কিন্তু আমার অবশ্যই বাইটগুলি ভুল গুনতে হবে।
গম উইজার্ড 13

4

পাইথন 3 , 30 29 বাইট

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

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

ঠিক আছে, ইতিমধ্যে পাইথন এর অনেক উত্তর রয়েছে তবে আমি মনে করি এটি এখনও সংখ্যার চেয়ে "E" এবং "C" অক্ষর ব্যবহার করে এমনদের মধ্যে এটি প্রথম সাব-30 বাইটার।




3

স্ট্যাক্স , 7 বাইট

ü♣àj#F 

এটি চালান এবং এটি ডিবাগ করুন

এটি "0" এবং "1" অক্ষর ব্যবহার করে। এটি কাজ করে কারণ যখন আপনি 1 মাপের একটি অ্যারে ঘোরান, এটি পরিবর্তন হয় না।

আনপ্যাকড, নিরবচ্ছিন্ন এবং মন্তব্য করা হয়েছে, এটি দেখতে এটির মতো দেখাচ্ছে।

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

এটি চালান




3

জেলি , 6 বাইট

⁵*ṾṙỊṙ

0 হিসাবে গাড়ী লেন , জরুরী লেনটি 1 হিসাবে প্রদর্শন করে ।

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

কিভাবে এটা কাজ করে

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

হোয়াইটস্পেস , 141 104 103 বাইট

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

বর্ণ S(স্থান), T(ট্যাব) এবং N(নতুন লাইন) কেবল হাইলাইট হিসাবে যুক্ত করা হয়েছে।
[..._some_action]শুধুমাত্র ব্যাখ্যা হিসাবে যুক্ত।

1পরিবর্তে Cএবং -পরিবর্তে প্রিন্ট করুন E

-1 বাইট ধন্যবাদ @JoKing ব্যবহার প্রস্তাবনা করে 1এবং -1পরিবর্তে 0এবং 1

সিউডো-কোডে ব্যাখ্যা:

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

উদাহরণ রান:

ইনপুট: 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

এটি অনলাইনে চেষ্টা করুন (কেবলমাত্র কাঁচা জায়গা, ট্যাব এবং নতুন লাইন সহ)।
ত্রুটি সহ বন্ধ: প্রস্থানটি সংজ্ঞায়িত হয়নি।

ইনপুট: 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

এটি অনলাইনে চেষ্টা করুন (কেবলমাত্র কাঁচা জায়গা, ট্যাব এবং নতুন লাইন সহ)।
ত্রুটি সহ বন্ধ: প্রস্থানটি সংজ্ঞায়িত হয়নি।


মুদ্রণের -অপব্যবহারের মতো পরিষ্কার লেনটি মুদ্রণ করা কি সহজ হবে -1?
জো কিং

@ জোকিং দুর্ভাগ্যক্রমে এটি আরও দীর্ঘ হবে। এটি অনলাইনে 112 বাইট ব্যবহার করে দেখুন। এটি প্রকৃতপক্ষে পরিবর্তিত হয়েছে push_0; print_as_integer; push_1; print_as_integerto push_-1; print_as_integer, কিন্তু বিনিময়ে দুটি push_0; print_as_integerসঙ্গে প্রতিস্থাপিত হয় push_45; print_as_character, যেখানে push_0= SSSN, এবং push_45= SSSTSTTSTN। এবং একটি অতিরিক্ত push_45যোগ করতে হবে, কারণ ইনপুট জন্য n=1আমি এখন 0আমার স্ট্যাকের মধ্যে ইতিমধ্যে ছিল নকল মুদ্রণ , তাই আমাকে 0আবার ঠেলাতে হবে না কারণ 0স্ট্যাকটি ইতিমধ্যে ছিল।
কেভিন ক্রুইজসেন

আমি -প্রতিস্থাপন 1এবং 1প্রতিস্থাপন হিসাবে বোঝানো হয়েছে 0। তারপরে আপনি 45 টি চাপ দিতে পারবেন না, এবং যতদূর আমি বলতে পারি এটি শর্তাধীন প্রথমার্ধে একটি সংখ্যা মুদ্রণ করা বাঁচাতে পারে তবে 0 এর পরিবর্তে 1 চাপ দেওয়ার ক্ষেত্রে সামান্য ব্যয় বৃদ্ধি করবে আমার গোল> <> উত্তরটি দেখুন আউটপুটটির একটি উদাহরণ যা আমি বলতে চাইছি
জো কিং

1
@ জোকিং আমি এটি প্রয়োগের চেষ্টা করেছি, তবে আমি 107 বাইটে শেষ হয়েছি (এখানে হাইলাইটিং এবং ব্যাখ্যা সহ একই কোডটি দেওয়া হয়েছে )। এটি সত্যিই সঞ্চয় print_-1মুদ্রণ পরিবর্তে 0এবং 1, কিন্তু একটি অতিরিক্ত print_-1লুপ বাইরে প্রয়োজনীয়। সম্পাদনা: পরিবর্তন করে এটি 103 বাইটে হ্রাস করতে সক্ষম হয়েছে subtract_1; if_0_jump_to_ONE; push_-1; print_integerto subtract_2; if_negative_jump_to_ONE; print_integer, কারণ -1 ইতিমধ্যে স্ট্যাকের মধ্যে রয়েছে। সুতরাং -1 বাইট জন্য ধন্যবাদ। :)
কেভিন ক্রুইজসেন

3

অটোহটকি 32 বাইট

"সি" চিঠিটি "ইসি" দিয়ে প্রতিস্থাপন করে তবে সি> 1 এর পরিমাণ না থাকলে এটি "সিইসি" প্রেরণ করে এবং অ্যাপটি প্রস্থান করে।

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

সি => ইসি
সিসি => সিইসি প্রোগ্রামটি থেকে বেরিয়ে আসে। প্রোগ্রামটি শেষ হওয়ার পরে আর কোনও সিএস প্রবেশ করা হবে।


3

এপিএল + উইন, 20 16 বাইট

অ্যাডমকে ধন্যবাদ 4 বাইট সংরক্ষণ করা

পূর্ণসংখ্যা n এর জন্য অনুরোধ জানানো হয়:

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

গাড়িগুলির জন্য জরুরি করিডোরের জন্য 1।


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

@ অ্যাডম ধন্যবাদ আমি এনএনজি এর কৌশল দেখছি, 1⎕ /।, কার্যকর আসছে। আইডিয়াম তালিকার জন্য একটি?
গ্রাহাম

আপনি কোন মূর্খ তালিকার কথা বলছেন?
অ্যাডম

@ অ্যাডম আমি প্রায়শই দুটি ব্যবহৃত আইডিয়ো তালিকাগুলি হ'ল ফিনাপল এবং এপিএল 2 আইডিওমস
গ্রাহাম

আমি নিশ্চিত না যে এখানে এতটা বুদ্ধিমান কি। এটা ঠিক গোলাপী। যাইহোক, আমার আইডিয়াম তালিকাটি আপনার আগ্রহী হতে পারে।
Adám


3

ম্যাথগল্ফ , 7 6 বাইট

ú░\┴╜╪

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

আউটপুট 1জন্য Eএবং 0জন্য C

ব্যাখ্যা:

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