স্বেচ্ছাসেবী ব্যবস্থার শাসক


25

এমন একটি প্রোগ্রাম তৈরি করুন যা ব্যবধানগুলির একটি দৈর্ঘ্য এবং তালিকা গ্রহণ করে এবং লাইন অঙ্কন অক্ষরের সাহায্যে প্রতিটি ব্যবধানের জন্য দীর্ঘতর টিক দিয়ে সেই দৈর্ঘ্যের একজন রুলকে আউটপুট দেয় ┌ ┬ ┐ │ ╵

  • আউটপুটটির প্রথম সারিটি 0 দিয়ে টিক দিয়ে শুরু করা উচিত এবং দৈর্ঘ্যের জন্য টিক দিয়ে শেষ করা উচিত , যার মধ্যে প্রতিটি চরিত্রের জন্য ব্যবহৃত হবে। lengthএই প্রথম সারিতে মোট + 1 লাইন অঙ্কন অক্ষর থাকবে।
  • একটি টিক্ টিক্ শব্দ ব্যবহার অর্ধেক-অক্ষর বাড়তি দ্বারা উল্লম্বভাবে lengthened করা উচিত এবং ইনপুট অন্তর উপর ভিত্তি করে।
  • অন্তরগুলি ছোট থেকে বড় পর্যন্ত তালিকাভুক্ত করা হয়, এর আগে বিরতির সাথে তুলনা করে। সম্প্রসারিত:
    • প্রথম ব্যবধানটি বলছে যে দ্বিতীয়-ক্ষুদ্রতম বিরতিতে (প্রথম সারিতে - প্রতিটি টিকের জন্য একটি অক্ষর) কতগুলি বেস টিক থাকে (ক্ষুদ্রতম অন্তর 1 হয়)। উদাহরণস্বরূপ, [3] প্রতিটি তৃতীয় টিকটি অর্ধ-চরিত্র দ্বারা দৈর্ঘ্য করবে।
    • দ্বিতীয় এবং পরবর্তী অন্তরগুলি পরবর্তী ক্ষুদ্রতম বিরতির ক্ষেত্রে। উদাহরণস্বরূপ [3, 5] একটি পূর্ণ চরিত্র দ্বারা প্রতি 15 তম বেস টিক দৈর্ঘ্য করবে এবং [3, 5, 2] প্রতিটি 30 তম বেস টিক একটি অক্ষর দ্বারা এবং দীর্ঘ করতে হবে।
    • 1 এর একটি সাব-ইন্টারভালটি বৈধ এবং কার্যকরভাবে এর অর্থ হ'ল শেষ অন্তরাল রেখাটি একটি অর্ধ-চরিত্রের পরিবর্তে একটি পূর্ণ চরিত্র দ্বারা দীর্ঘ করা হয়।
  • উদাহরণ পরীক্ষার ক্ষেত্রে এটি কীভাবে কাজ করে তা স্পষ্ট করতে সহায়তা করা উচিত to

উদাহরণ / পরীক্ষার কেস

3, []:

┌┬┬┐

9, [3]:

┌┬┬┬┬┬┬┬┬┐
╵  ╵  ╵  ╵

30, [5, 2]:

┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐
│    ╵    │    ╵    │    ╵    │

32, [4, 2, 2, 2]:

┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐
│   ╵   │   ╵   │   ╵   │   ╵   │
│               ╵               │

48, [5, 3, 2]

┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐
│    ╵    ╵    │    ╵    ╵    │    ╵    ╵    │
╵                             ╵

24, [7, 3]

┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐
│      ╵      ╵      │

17, [3, 2, 1]

┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐
│  ╵  │  ╵  │  ╵
╵     ╵     ╵

1, [23, 19, 13, 11, 7, 5, 3, 2, 1]

┌┐
│
│
│
│
╵

অন্যান্য বিধি / নোট

  • ইনপুট এবং আউটপুট যে কোনও সুবিধাজনক বিন্যাস ব্যবহার করতে পারে
  • কোনও প্রধান টিক দিয়ে শাসককে শেষ করতে হবে না
  • বিরতি তালিকা খালি হতে পারে
  • জিরোথ টিক সবসময় সমস্ত বিরতির মধ্যে থাকে।
  • আপনি শাসকের দৈর্ঘ্য ধরে নিতে পারেন এবং অন্তরগুলি সর্বদা 120 এর চেয়ে কম ইতিবাচক পূর্ণসংখ্যার হবে
  • শ্বেত স্পেস অনুসরণ করা ঠিক আছে, তবে শীর্ষস্থানীয় সাদা জায়গা নেই।
  • যদি কোনও কারণে, ASCII স্পেস ব্যতীত অন্য কিছু ব্যবহার করতে চান তবে কোনও স্থির-একক-প্রশস্ত স্থানকে একটি ফাঁকা চরিত্র হিসাবে অনুমোদিত।

শুভ গল্ফিং!


আউটপুট জন্য, আমি কি প্রথম সারিতে মুদ্রণ করতে পারি, তারপরে কলামগুলির একটি তালিকা ফিরিয়ে দিতে পারি?
অজ্ঞতার প্রতিমূর্তি

অ্যাম্বোডিমেন্টফ অজ্ঞতা, আমি এটিকে কিছু বলব না। আউটপুট সামঞ্জস্যপূর্ণ হওয়া উচিত।
গরুর মাংস

আমরা কি একক-বাইট এনকোডিং থেকে বাক্স-অঙ্কন অক্ষরগুলি নিতে পারি (প্রয়োজনীয় শর্তাদির সাথে একটি বিদ্যমান রয়েছে)?
ousurous

"যে কোনও সুবিধাজনক বিন্যাস " - আমরা কি বিপরীত ক্রমে অন্তর তালিকাটি গ্রহণ করতে পারি?
এনএনজি

@ জিএনএন: আমি দেখছি না কেন। যদি এটি কোনওভাবে আপনাকে সহায়তা করে তবে এর জন্য যান।
বিফস্টার

উত্তর:



3

পার্ল 6 , 130 122 102 92 বাইট

-10 বাইট ধন্যবাদ নওহেলহোফকে!

{'┌'~'┬'x$^a-1~'┐',|map {[~] <<' ' │>>[:1[$_ X%%@_]for 0..$a]},batch [\*] @^b: 2}

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

হ্যাঁ হ্যাঁ, আমার আগের পদ্ধতির চেয়ে অনেক খাটো। এটি একটি বেনামে কোড ব্লক যা লাইনের একটি তালিকা প্রদান করে।

ব্যাখ্যা:

{                                                   }   # Anonymous code block
 '┌'~'┬'x$^a-1~'┐',     # Return the first line
 |[\*] @^b          # Get the cumulative product of the input list
              .batch(2) # And split it into pairs
  .map:{                                      }  # Map each pair to
                                    for 0..$a    # For each interval
                        :1[$_ X%%@_]    # Whether it is divisible by none of the pair, one of the pair, or both
            <<' ' │>>[                     ]      # Map to a list of characters
        [~]        # And join

3

ডায়ালগ এপিএল, 66 64 58 52 বাইট

{'┌┐'@0⍵@0⍉('┬│',⎕UCS 9589)/⍤11,⍉0 2⊤⊥¨⍨0=(⍵+1)⍴⍳⍺}

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

2 8 14 ধন্যবাদ বাইট ngn !


∊'┌'(1↓⍵⍴'┬')'┐'->'┌┬┐'/⍨2⍵2-1
এনজিএন

@ ধন্যবাদ! এগুলি হ'ল গল্ফগুলি যেগুলি খুব বোধগম্য হয় তবে আমি কখনই এর পূর্বাভাস দিতে পারি না বা এর
ব্যবহারগুলি

অবশেষে, আমি ডান দিকের অংশটি কিছুটা ছোট করতে পেরেছি ... +⌿0=(×\⍺)∘.|⍳1+⍵-> ⊥¨⍨0=(⍵+1)⍴⍳⌽⍺বিপরীত ক্রমে গ্রহণ করার জন্য এখন স্পষ্টভাবে অনুমতি দেওয়া হয়েছে , তাই আপনি 23
34

('┌┬┐'/⍨2⍵2-1)->'┌┬┐'[2,⍨×⍳⍵]
এনজিএন

বা আরও ভাল: ('┌┬┐'/⍨2⍵2-1)⍪⍉->'┌┐'@0⍵@0⍉'┬',
এনজিএন


2

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

ÝεyIηPÖO2‰•5·W4•2äç×SI¯Qiεõ}}•áΣ=Yô•3äçy¹QyĀ+èš}ζJ»

I¯Qiεõ}}খালি ইনপুট-তালিকাগুলির জন্য প্রায় কাজ হিসাবে খুব খুশি না .. এবং অবশ্যই অন্যান্য কিছু অংশে গল্ফ করা যেতে পারে ..

দ্রষ্টব্য: সংক্ষিপ্ত পূর্ণসংখ্যার প্রয়োজনীয় অক্ষরগুলিতে রূপান্তরিত ব্যবহার করা হয়, কারণ প্রয়োজনীয় অক্ষরগুলি সরাসরি ব্যবহার করার অর্থ আমাকে পুরো প্রোগ্রামটি ইউটিএফ -8 এ গণনা করতে হবে, এটি 05AB1E এর অন্তর্নির্মিত অক্ষরের জন্যও খুব বেশি বৃদ্ধি করতে হবে।

এটি অনলাইনে চেষ্টা করুন বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা:

Ý             # Create a list in the range [0, first (implicit) input-integer]
 ε            # Map each value `y` to:
   Iη         #  Get the prefixes of the second input-list
     P        #  Get the product of each prefix
  y   Ö       #  Check for each if its evenly dividing the value `y`
       O      #  Take the sum of that
        2    #  And then the divmod 2
  5·W4      #  Push compressed integer 94749589
        2ä    #  Split into two equal-sized parts: [9474,9589]
          ç   #  Convert each to a character: ["│","╵"]
           ×  #  Repeat each based on the divmod 2 result
            S #  And convert it to a flattened list of characters
  I¯Qi   }    #  If the second input-list was empty:
      εõ}     #   Map each list to an empty string
              #   (for some reason `€õ` doesn't work here..)
  •áΣ=Yô•     #  Push compressed integer 948495169488
         3ä   #  Split into three equal-sized parts: [9484,9516,9488]
           ç  #  Convert each to a character: ["┌","┬","┐"]
  y¹Q         #  Check if the value `y` is equal to the first input-integer
              #  (1 if truthy; 0 if falsey)
     yĀ       #  Check if the value `y` is NOT 0 (1 if truthy; 0 if falsey)
       +      #  Add both checks together
        è     #  Use it to index into the list ["┌","┬","┐"]
         š    #  And prepend the result in front of the other characters
            # After the map: zip/transpose; swapping rows and columns (with space filler)
   J          # Join every inner list together to a single string
    »         # Join the lines with newline delimiter (and output implicitly)

আমার এই 05AB1E ডগা দেখুন (অধ্যায় ইপিএসে দক্ষিন কোরিয়ায় কিভাবে পূর্ণসংখ্যার কম্প্রেস কিভাবে? ) কেন বুঝতে •5·W4•হয় 94749589এবং •áΣ=Yô•হয় 948495169488



@ ম্যাজিক অ্যাক্টোপাস ইউরান আমি প্রথম প্রথম এটিরকমও ভেবেছিলাম, তবে এটি দুর্ভাগ্যজনকভাবে নয় (খালি শূন্য তালিকার সাথে অন্য পরীক্ষার ক্ষেত্রে এটির চেষ্টা করুন)। sиSকাজ করে, তবে দুর্ভাগ্যক্রমে এটি ছোট হওয়ার পরিবর্তে আর একটি বাইট। এটি কারণ কারণগুলি প্রথমে স্ট্যাকের উপরে থাকে এবং তার পরে স্ট্রিং থাকে। সঙ্গে ×এটা কোন ব্যাপার না কিনা এটা int,stringবা string,int, কিন্তু সঙ্গে иএটা আশা string,int
কেভিন ক্রুইজসেন

ওহ আমি দেখছি, লোকটি হ্যাঁ বিহ্বল করছিল। এটিতে দুর্দান্ত কাজ, সত্যি কথা বলতে আমি 10 মিনিট সময় দিয়ে যাচ্ছিলাম তা কী তা বের করার চেষ্টা করে ব্যর্থ হয়ে গেলাম, এই ব্যস্ততাটি মিস করলাম и! ভবিষ্যতে জেনে রাখা ভাল, আপনার অন্য উত্তরগুলির আগে আমি এটি ব্যবহার করে দেখিনি।
ম্যাজিক অক্টোপাস উরন

2

কাঠকয়লা , 50 বাইট

≔EηΠ…η⊕κη⪫┐┌×┬⊖θ↙↓EE⊕θΣEη¬﹪ιλ⁺×│⊘ι×╵﹪ι²‖

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। চারকোলে বক্স-অঙ্কনের অক্ষরের 3 টি বাইট উপস্থাপনা থাকে, সুতরাং উপরের স্ট্রিংটি কেবল 40 টি অক্ষর দীর্ঘ। ব্যাখ্যা:

≔EηΠ…η⊕κη

অন্তরগুলির সংযোজনীয় পণ্য গণনা করুন।

⪫┐┌×┬⊖θ↙

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

↓EE⊕θΣEη¬﹪ιλ⁺×│⊘ι×╵﹪ι²

বিরতিগুলির সংখ্যা গণনা করুন যা প্রতিটি টিক চিহ্নের একটি উপাদান। অর্ধেক দৈর্ঘ্যের s এর স্ট্রিং উত্পন্ন করুন এবং বিজোড় দৈর্ঘ্যের জন্য যুক্ত করুন । পূর্ববর্তী কলামগুলিতে পরবর্তী স্ট্রিং সহ প্রতিটি স্ট্রিং নীচের দিকে মুদ্রণ করুন, অর্থাৎ বিপরীত ক্রম।

বাম থেকে ডান ক্রমকে শাসক পেতে সমস্ত কিছু প্রতিবিম্বিত করুন।



2

ইমাস লিস্প , 303 বাইট

(defun f(a)(princ'┌)(dotimes(i(1-(car a)))(princ'┬))(princ'┐)(let((m 1))(while(cadr a)(let((q(caadr a))(w (cadadr a)))(princ"\n")(dotimes(i(1+(car a)))(cond((if w(= 0(mod i(* m q w))))(princ'│))((= 0(mod i (* m q)))(princ'╵))(t(princ" "))))(setq m(* m q(if w w 1)))(setcdr a`(,(cddadr a)))))))

হিসাবে এই ফাংশন ব্যবহার করুন (f '(30 (5 2)))

ভাল পাঠযোগ্য সংস্করণ:

(defun f (a)
  (princ '┌)
  (dotimes (i (1- (car a)))
    (princ '┬))
  (princ '┐)
  (let ((m 1))
    (while (cadr a)
      (let ((q (caadr a)) (w (cadadr a)))
    (princ "\n")
    (dotimes (i (1+ (car a)))
      (cond ((if w (= 0 (mod i (* m q w))))
        (princ '│))
       ((= 0 (mod i (* m q)))
        (princ '╵))
       (t
        (princ " "))))
    (setq m (* m q (if w w 1)))
    (setcdr a `(,(cddadr a)))))))

2

জেলি ,  42  41 বাইট

‘Rm×\}Ṭ€+2/
⁽!ṣ;“½¥÷I‘ÄỌṙ-;⁶
Ḷ¬;.Ḥ~W;ñị¢Y

একটি সম্পূর্ণ প্রোগ্রাম।
এটি অনলাইন চেষ্টা করুন!

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

কিভাবে?

‘Rm×\}Ṭ€+2/ - Link 1, lower interval tick types: length; intervals  e.g. 7; [3,2]
‘           - increment length                                           8
 R          - range                                                      [1,2,3,4,5,6,7,8]
     }      - use right argument for this monad as if it were a dyad:
   ×\       -   cumulative reduce by multiplication                      [3,6]
  m         - modulo slice (vectorises)                                  [[1,4,7],[1,7]]
      Ṭ€    - untruth €ach                               [[1,0,0,1,0,0,1],[1,0,0,0,0,0,1]]
        +2/ - pairwise reduce with addition                              [[2,0,0,1,0,0,2]]
            -   -- yielding a list of types for each row of characters below the first
            -      where 0 is a space, 1 is a short tick-mark and 2 is a long tick-mark

⁽!ṣ;“½¥÷I‘ÄỌṙ-;⁶ - Link 2, make character set: no arguments
⁽!ṣ              - literal 9474
    “½¥÷I‘       - list of code-page indices   = [10,4,28,73]
   ;             - concatenate              [9474,10,4,28,73]
          Ä      - cumulative addition      [9474,9484,9488,9516,9589]
           Ọ     - to characters            "│┌┐┬╵"
            ṙ-   - rotate left by -1        "╵│┌┐┬"
               ⁶ - literal space character  ' '
              ;  - concatenate              "╵│┌┐┬ "

Ḷ¬;.Ḥ~W;ñị¢Y - Main link: length, L; intervals, I
Ḷ            - lowered range         [ 0, 1, 2, ..., L-1]
 ¬           - logical Not           [ 1, 0, 0, ..., 0]
   .         - literal 0.5
  ;          - concatenate           [ 1, 0, 0, ..., 0, 0.5]
    Ḥ        - double                [ 2, 0, 0, ..., 0, 1]
     ~       - bitwise NOT           [-3,-1,-1, ...,-1,-2]
      W      - wrap that in a list  [[-3,-1,-1, ...,-1,-2]]
        ñ    - call next Link (1) as a dyad (f(L, I))
       ;     - (left) concatenated with (right)
          ¢  - call last Link (2) as a nilad (f())
         ị   - (left) index into (right)  (1-indexed and modular)
           Y - join with newline characters
             - implicit print

1

রুবি , 126 বাইট

->l,i{y=1;[?┌+?┬*~-l+?┐]+i.each_slice(2).map{|j,k|x=y*j;y=k&&x*k;(0..l).map{|z|'│╵ '[(z%x<=>0)+(k ?z%y<=>0:1)]}*''}}

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

এই সমস্ত each_sliceস্টাফের সাথে বরং ভারবজ মনে হচ্ছে , তবে এখনই করব, যদি না আমি গল্ফিয়ারের পদ্ধতির সন্ধান না করি।

lদৈর্ঘ্য এবং iঅন্তর হিসাবে ইনপুট নেয় , একটি স্ট্রিং এর অ্যারে দেয়।


1

আর , 175 170 বাইট

function(l,i,`&`=rep)rbind(c('┌','┬'&l-1,'┐'),if(i)sapply(rowSums(!outer(0:l,cumprod(i),`%%`)),function(j,x=j%/%2,y=j%%2)c('│'&x,'╵'&y,' '&(1+sum(1|i))/2-x-y)))

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

খালি বিরতি হিসাবে গ্রহণ করে 0, অক্ষরের একটি ম্যাট্রিক্স প্রদান করে। টিআইও লিঙ্কটি আউটপুটটি বেশ মুদ্রিত প্রদর্শন করে।


1

হাস্কেল , 167 164 149 বাইট

n%l=unlines$("┌"++([2..n]>>"┬")++"┐"):[do p<-[0..n];let(j#a)b|1>p`rem`product(take j l)=a|1>0=b in(i-1)#(i#"│"$"╵")$" "|i<-[1,3..length l]]

এটি অনলাইন চেষ্টা করুন! সামান্য দ্বারা বিভিন্ন পদ্ধতির golfed Οurous


n%l|let c=take(n+1).cycle;m&(x:y:r)=c('│':init([1..y]>>(m*x)!" "++"╵"))++'\n':(m*x*y)&r;m&[x]=c$'╵':(m*x)!" ";m&e=[]='┌':n!"┬"++"┐\n"++1&l
n!s=[2..n]>>s

এটি অনলাইন চেষ্টা করুন! এখনও কিছু রিডানডান্সি রয়েছে যা দেখে মনে হয় যে সেগুলি শোষণ করা যেতে পারে তবে এখনও অবধি তারা আরও সমস্ত গল্ফ প্রচেষ্টা চালিয়ে গেছে।


পূর্ববর্তী 167 বাইট সমাধানটি নিউলাইন হ্যান্ডলিং ছাড়া একই এবং সম্ভবত কিছুটা ভাল পঠনযোগ্য:

n%l=unlines$('┌':n!"┬"++"┐"):(take(n+1)<$>1&l)
n!s=[2..n]>>s
m&(x:y:r)=cycle('│':init([1..y]>>(m*x)!" "++"╵")):(m*x*y)&r
m&[x]=[cycle$'╵':(m*x)!" "]
m&e=[]

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


1
158 বাইটে ভিন্ন পদ্ধতির ( এটি অনলাইনে ব্যবহার করে দেখুন! ) আমি হাস্কেল ভালভাবে না বলার কারণে সম্ভবত আরও কিছুটা ছোট করা যেতে পারে।
ousurous

@ Οurous ধন্যবাদ!
লাইকোনি

1

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

param($t,$i)"┌$('┬'*--$t)┐"
$i|%{$s=++$s*$_-1;$p=".(.{$s}|.*$)"
if($r){$r-replace$p,'│$1';rv r}else{$r=' '*($t+2)-replace$p,'╵$1'}}
if($r){$r}

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

Unrolled:

param($ticks,$intervals)
"┌$('┬'*--$ticks)┐"                         # implicit output
$intervals|%{
    $step=++$step*$_-1
    $pattern=".(.{$step}|.*$)"
    if($row){
        $row-replace$pattern,'│$1'          # implicit output
        Remove-Variable row
    }else{
        $row=' '*($ticks+2)-replace$pattern,'╵$1'
    }
}
if($row){$row}                              # implicit output


1
তুমি ঠিক. 1) আমি এমন কোনও নিয়ম দেখিনি যা শেষে নতুন লাইনের পিছনে যেতে দেয়। 2) এবং আমি পছন্দ করি না যে কোডটি কখনও কখনও শেষে একটি নতুন লাইন যুক্ত করে, এবং কখনও কখনও এটি তা করে না। :)
mazzy

0

সি # (ভিজ্যুয়াল সি # ইন্টারেক্টিভ সংকলক) , 204 বাইট

a=>b=>{Write("┌"+"┐\n".PadLeft(++a,'┬'));for(int i=1;;i++,WriteLine())for(int j=0;j<a;){var m=b.Select((c,d)=>b.Take(d+1).Aggregate((e,f)=>e*f)).Count(c=>j++%c<1);Write(m<1|i>m?" ":m<2?"╵":"|");}}

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

আউটপুটস, তবে অসীম লুপে আটকে যায়।


0

পরিষ্কার , 221 201 195 162 বাইট

import StdEnv
$n l=[["┌":repeatn(n-1)"┬"]++["┐"]:[[if(?(i-1))if(?i&&l%(i,i)>[])"│""╵"" "\\p<-[0..n],let?j=1>p rem(prod(l%(0,j)))
]\\i<-[1,3..length l]]]

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

ইউটিএফ -8 অক্ষরের তালিকার একটি তালিকা ফেরত দেয় (স্ট্রিং হিসাবে, যেহেতু ক্লিনের কোনও সহজাত ইউটিএফ -8 সমর্থন নেই)।

প্রথম লাইন উত্পন্ন করে, তারপরে দুটি গ্রুপে সরবরাহিত তালিকার উপসর্গগুলির পণ্য গ্রহণ করে এবং পণ্যটি বর্তমান চরিত্রের অবস্থানকে বিভক্ত করে কিনা তার ভিত্তিতে কোন চিহ্নটি চিহ্নিত করবে তা পরীক্ষা করে Works

Ungolfed:

$ n l
    = [
        ["┌": repeatn (n - 1) "┬"] ++ ["┐"]:
        [
            [
                if(? (i - 1))
                    if(? i && l%(i, i) > [])
                        "│"
                        "╵"
                    " "
                \\ p <- [0..n]
                , let
                    ? j = 1 > p rem (prod (l%(0, j)))
            ]
            \\ i <- [1, 3.. length l]
        ]
    ]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.