স্ট্যাক উপচে পড়া


47

( এই প্রশ্নে অনুপ্রাণিত )

উদ্দেশ্য

আপনার কাজটি স্ট্যাক ওভারফ্লো লোগোটির একটি ASCII সংস্করণটি STDOUT এ মুদ্রণের জন্য একটি প্রোগ্রাম বা ফাংশন লিখতে হবে

 \|/
(-)
(-)
(-)
(-)

আপনার প্রোগ্রামটি দুটি ইনপুট গ্রহণ করতে হবে, এখানে H এবং N হিসাবে উল্লেখ করা হয়েছে the স্ট্যাক "ধারক" (প্রথম বন্ধনী) এর উচ্চতা এইচ দ্বারা নির্ধারিত হয় the স্ট্যাক "ওভারফ্লো" হবে

ইনপুট আউটপুট

এইচ কনটেইনারগুলির উচ্চতা নির্ধারণ করবে

উদাহরণ স্বরূপ:

এইচ = 1:

( )

এইচ = 2:

( )
( )

এইচ = 3:

( )
( )
( )

এইচ সর্বদা কমপক্ষে 1 হবে

এন স্ট্যাকের মধ্যে কতগুলি আইটেম রয়েছে তা নির্ধারণ করবে। নিম্নলিখিত উদাহরণগুলি সমস্ত এইচ = 2:

এন = 0

( )
( )

N = 1

( )
(-)

এন = 2

(-)
(-)

এন = 3

 \
(-)
(-)

এন = 4

 \|
(-)
(-)

এন = 5

 \|/
(-)
(-)

এন = 6

 \|/
(-)-
(-)

এন = 7

 \|/
(-)-
(-)-

এন কখনই এর চেয়ে বেশি হবে না 2H+3(অন্য কথায়, স্ট্যাকটি কখনও মাটির মধ্য দিয়ে যাবে না)।

বিধি

  • কোনও স্ট্যান্ডার্ড লুফোলস নেই।
  • আপনার প্রোগ্রাম অবশ্যই কোন ত্রুটি উত্পাদন করা উচিত।
  • সমস্ত পরীক্ষার কেস পাস করতে হবে।
  • আপনি যেভাবে চান এইচ এবং এন ইনপুট করতে পারেন।
  • আমি গুরুতরভাবে সন্দেহ করি যে এর জন্য আপনার ভাষার অন্তর্নির্মিত রয়েছে।
  • প্রতিটি লাইনের allyচ্ছিকভাবে শেষে অতিরিক্ত স্থান থাকতে পারে। একটি স্ট্যাকের উপরে একটি ফাঁকা রেখা যেখানে এন <= এইচ alচ্ছিক, যেমনটি একটি পূর্ববর্তী নিউলাইন।
  • এটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোড!

পরীক্ষার মামলা

ইনপুট / আউটপুট বিভাগ থেকে এইচ = 2 পরীক্ষার সবগুলি ছাড়াও, নিম্নলিখিত পরীক্ষার সমস্ত ক্ষেত্রে অবশ্যই পাস করতে হবে:

এইচ = 1, এন = 1

(-)

এইচ = 1, এন = 5

 \|/
(-)-

এইচ = 4, এন = 7

 \|/
(-)
(-)
(-)
(-)

এইচ = 5, এন = 0

( )
( )
( )
( )
( )

লিডারবোর্ড

নিয়মিত লিডারবোর্ড এবং ভাষার দ্বারা বিজয়ীদের একটি সংক্ষিপ্ত বিবরণ উভয়ই তৈরি করতে এখানে একটি স্ট্যাক স্নিপেট।

আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:

# Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

# Ruby, <s>104</s> <s>101</s> 96 bytes

যদি আপনি নিজের শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের সমষ্টি বা আপনি পৃথকভাবে দোভাষী পতাকা দণ্ডের তালিকা করতে চান), নিশ্চিত করুন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:

# Perl, 43 + 2 (-p flag) = 45 bytes

আপনি ভাষাটির নামটিকে একটি লিঙ্কও বানাতে পারেন যা লিডারবোর্ড স্নিপেটে প্রদর্শিত হবে:

# [><>](http://esolangs.org/wiki/Fish), 121 bytes


4
আমি কি এমন একটি প্রতিদ্বন্দ্বিতামূলক প্রোগ্রাম পোস্ট করতে পারি যা লোগো প্রিন্ট করার পরিবর্তে স্ট্যাকটিকে উপচে ফেলে?
dorukayhan

@ ডোরুকায়হান যদি কেবল ওভারফ্লো হয় তবে এন> এইচ :)
ড্যানিয়েল এম

মানে, আমি কি এমন একটি প্রোগ্রাম তৈরি করতে পারি যা স্ট্যাকের ওভারফ্লো থেকে ক্র্যাশ হয়ে গেছে?
dorukayhan

@ ডোরুকায়হান কেবল তখনই ক্র্যাশ হয়ে যায় যখন স্ট্যাকের চেয়ে বেশি আইটেম থাকতে পারে
ড্যানিয়েল এম

উত্তর:


14

পাইথ, 43 41 40 বাইট

<" \|/"g#0hK-QJEVJs[\(?<N_Kd\-\)*<N-K3\-

এটি অনলাইনে চেষ্টা করুন। পরীক্ষা স্যুট.

প্রথম পাস, দ্রুত এবং নোংরা। এসটিডিএন হিসাবে ইনপুট N\nH

ব্যাখ্যা

  1. দ্বিতীয় ইনপুট (উচ্চতা) এ J( JE) সংরক্ষণ করুন এবং এটি প্রথম ইনপুট (আইটেমের সংখ্যা) থেকে বিয়োগ করুন। ( -QJE)
  2. পার্থক্যটি (উপচে পড়া আইটেমের সংখ্যা) এতে সংরক্ষণ করুন K। ( K-QJE)
  3. সংখ্যায় 1 যুক্ত করুন। ( hK-QJE)
  4. নিন max(0, previous)। Requiredণাত্মক সংখ্যাগুলি পরবর্তী পদক্ষেপটি ভেঙে দেবে বলে এটি প্রয়োজনীয়। ( g#0hK-QJE)
  5. " \|/"প্রথম লাইনটি এবং মুদ্রণ পেতে স্ট্রিং থেকে বেশিরভাগ অক্ষর নিন । ( <" \|/"g#0hK-QJE)
  6. লুপ Nশেষ range(0, J)। ( VJ) প্রতিটি Nমুদ্রণের জন্য নীচের সংক্ষেপণ: ( s[)
    • "("( \()
    • " "যদি N+1স্ট্যাকের কমপক্ষে বিনামূল্যে স্থান থাকে ( <N_K), "-"অন্যথায়। ( ?<N_Kd\-)
    • ")"( \))
    • "-"যদি N+4স্ট্যাকটিতে কমপক্ষে উপচে পড়া টুকরা থাকে ( <N-K3), ""অন্যথায়। ( *<N-K3\-)

13

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

@ সম্পাদনা: সংরক্ষিত 3 বাইট @ পেট্রিকরবার্টসকে ধন্যবাদ

f=
(n,h)=>` \\|/`.substr(0,n+1-h)+[...Array(h)].map((_,i)=>`
(${i+n<h?` `:`-`})${i+h+3<n?`-`:``}`).join``
;
<div oninput=o.textContent=f(+n.value,+h.value)>n<input id=n type=number min=0 value=0>h<input id=h type=number min=0 value=0><pre id=o>


আপনি প্রতিস্থাপন করতে পারেন substringসঙ্গে substr3 বাইট সংরক্ষণ করুন এবং প্রতিস্থাপন i+n<h?' ':'-'সঙ্গে '- '[i+n<h]সংরক্ষণ 2 বাইট এবং প্রতিস্থাপন i+h+3<n?'-':''সঙ্গে ' -'[i+h+3<n]1 বাইট সংরক্ষণ করুন। এটি আপনাকে 100 এর নিচে পেয়ে যাবে
প্যাট্রিক রবার্টস

@ পেট্রিকরবার্টস আমি মনে করতে পারি না substrনেতিবাচক সাবস্ক্রিপ্টগুলি উপেক্ষা করা হয়েছে কি না, তবে আমি আপনার অন্যান্য টিপস ব্যবহার করতে পারি না কারণ স্ট্রিং সাবস্ক্রিপ্টগুলি স্ট্রিং, তাই বুলিয়ানরা যথেষ্ট ভাল না।
নিল

ক্রেপ আমি সে সম্পর্কে ভুলে গেছি, ভাল পয়েন্ট
প্যাট্রিক রবার্টস

এই দুটি অক্ষর সংরক্ষণ করার জন্য ট্যাগযুক্ত টেম্পলেটগুলির সত্যই চতুর ব্যবহার!
বেনিয়ামিন গ্রুইনবাউম

@ বেঞ্জামিন গ্রুয়েনবাউম "ট্যাগযুক্ত টেম্পলেট" কী?
প্যাট্রিক রবার্টস

12

জাভাস্ক্রিপ্ট (ES6), 126 122 112 বাইট

h=>n=>' \\|/'.substr(0,(o=n-h)+1)+`
( )`[r='repeat'](0>-o?0:-o)+`
(-)-`[r](o=0>o-3?0:o-3)+`
(-)`[r](n<h-o?n:h-o)

পরীক্ষা

f=h=>n=>' \\|/'.substr(0,(o=n-h)+1)+`
( )`[r='repeat'](0>-o?0:-o)+`
(-)-`[r](o=0>o-3?0:o-3)+`
(-)`[r](n<h-o?n:h-o)
document.write(`<pre>${[[2,0],[2,1],[2,2],[2,3],[2,4],[2,5],[2,6],[2,7],[1,1],[1,5],[4,7],[5,0]].map(a=>f(a.shift())(a.shift())).join`

`}</pre>`)

বিকল্প পরীক্ষা (যদি আপনার ব্রাউজার ES6 সমর্থন করে না)

Babeljs.io এ পরীক্ষা দেখুন এবং "মূল্যায়ন" দেখুন check

136 বাইটে আকর্ষণীয় বিকল্প পদ্ধতি

h=>n=>' \\|/'.substr(0,(o=n-h)+1)+`
( )${0>-o?0:-o}
(-)-${o=0>o-3?0:o-3}
(-)${n<h-o?n:h-o}`.replace(/(\n.*)(\d+)/g,(_,s,r)=>s.repeat(r))

এটি পুনরাবৃত্ত পরিমাণকে টেম্পলেট স্ট্রিংয়ের দিকে সরিয়ে দেয় এবং পুনরায় পুনরায় গ্রুপগুলি ইনজেকশনের জন্য একটি রেজিপ্স্প এবং প্রতিস্থাপন ব্যবহার করে। দুর্ভাগ্যক্রমে এর স্বাক্ষরটি .replace()খুব দীর্ঘ।


আমি একটি ত্রুটি পেয়েছি ...?
অ্যাডিসন ক্রম্প

1
@ VTCAKAVSMoACE আপনার ব্রাউজারটি অবশ্যই ES6 সিনট্যাক্স সমর্থন করবে। এটা আমার জন্য ভালই কাজ করে। বাবেলে নিখরচায় পরীক্ষা আটকান
প্যাট্রিক রবার্টস

@ ভিটিসিএকএভিএসমোএসি ক্রোম ৫২ (জুন ২০১ of হিসাবে বিটাতে) লেজ কল অপ্টিমাইজেশন এবং মডিউল লোডিং বাদে সমস্ত ES6 এবং ES7 সমর্থন করে।
জ্যাক ক্যাম্পেল

10

সি ++ 14 (ল্যাম্বদা ফাংশন), 196

কুইন্টিনকে ধন্যবাদ 1 বাইট সংরক্ষণ করা।

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

#include<iostream>
using namespace std;[](int h,int n){auto s=" \\|/( ) (-) (-)-"s;int t=max(min(n-h,3),0);n-=t;cout<<s.substr(0,t+1)+'\n';for(;h;h--)n-=t=n>h?2:h<=n,cout<<s.substr(4+4*t,4)+'\n';}

ফাংশনটি নিজেই 157 বাইট নেয়।

এটি এখানে কর্মে দেখুন ।

অবরুদ্ধ সংস্করণ:

[](int h, int n) {
    auto s = " \\|/( ) (-) (-)-"s;
    int t = max(min(n - h, 3), 0);
    n -= t;
    cout << s.substr(0, t + 1) + '\n';
    for(; h; h--) {
        if (n > h) t = 2;
        else if (h > n) t = 0;
        else t = 1;
        n -= t;
        cout << s.substr(4 + 4 * t, 4) + '\n';
    }
};

2
আপনার উত্তরটি একটি সম্পূর্ণ প্রোগ্রাম (যা তা নয়) না হওয়া পর্যন্ত আমি includeগুলি এবং using namespace std;বাইট গণনায় কোনও লাভ নেই ।
আলেকজান্ডার রেভো

9

সিজেম, 57 বাইট

Sri:X'(*+X),W%X)X')*+X),X))f+]zN*X5*,X'-*_"\|/"\++ri<S+er

এটি এখানে পরীক্ষা করুন।

অবশ্যই কিছু উন্নতি ব্যবহার করতে পারে। ধারণাটি এমন একটি গ্রিড তৈরি করা যেখানে -\|/-কোষগুলি পরপর পূর্ণসংখ্যার সাথে প্রতিস্থাপন করা হয়, যেমন

 345
(2)6
(1)7
(0)8

এবং তারপরে তাদের শেষে সঠিক অক্ষর (সম্ভাব্য স্থান) দিয়ে প্রতিস্থাপন করুন।


6

পাইথন 2, 101 100 98 বাইট

def f(h,n):
 print" \|/"[:max(0,n-h+1)]
 for i in range(h):print("(-)","( )")[h-i>n]+"-"*(n>i+h+3)

এর পরে স্থানগুলি printঅপ্রয়োজনীয়
সাইওস

@ কিউস ধন্যবাদ, এটি 2 টি চরিত্র সাশ্রয় করে।
চাক মরিস

4

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

F=(h,n)=>h?F(h-1,n-1)+`
(${n>0?'-':' '})${n>2*h+2?'-':''}`:' \\|/'.substr(0,n+1)

নীচে থেকে আউটপুট স্ট্রিং তৈরি করতে পুনরাবৃত্তি ব্যবহার করে।

সম্পাদনা : 87 বাইট থেকে 7 বাইট শেভ করার জন্য @ নীলকে ধন্যবাদ

মূল

(h,n)=>(E=s=>h--?E(`
(${n>0?'-':' '})${--n>2*h+3?'-':''}`+s):` \\|/`.substr(0,n+1)+s)``

পরীক্ষার স্নিপেট:

F=(h,n)=>h?F(h-1,n-1)+`
(${n>0?'-':' '})${n>2*h+2?'-':''}`:' \\|/'.substr(0,n+1)


h.oninput = n.oninput = () => output.innerHTML = F(+h.value, +n.value);
<label>h <input type="number" min="0" value="0" id="h" /></label>
<label>n <input type="number" min="0" value="0" id="n" /></label>
<hr />
<pre id="output"></pre>


সুন্দর স্নিপেটের জন্য ধন্যবাদ! একটি অতিরিক্ত পয়েন্ট দেওয়া উচিত: পি
কিম্যাক্স

1
@ কিম্যাক্স ধন্যবাদ সাথী, কেউ কনসোল নিয়ে গোলমাল করতে চায় না
জর্জ রিথ

কমপক্ষে যখন আমি চেষ্টা করেছি, স্ট্যাকটি বেশ বড় ছিল এবং এটি কেবল সাধারণ পুনরাবৃত্তি সহ 78 বাইট হবে।
নীল

স্নিপেট কনসোলটি SyntaxErrorআমার জন্য একটি দেখাচ্ছে ।
আর্টঅফকোড

1
@ আর্টঅফকোড একটি ES6 অনুগত ব্রাউজার ব্যবহার করা দরকার
জর্জ রিথ

3

জাভাস্ক্রিপ্ট (ES6), 149 139 137 বাইট

h=>n=>` ${[(g=(j,m=1)=>` -\\|/`[(j<n)*m])(h,2),g(h+1,3),g(h+2,4)].join``}${[...Array(h)].map((_,i)=>`
(${g(h-i-1)})${g(h+i+3)}`).join``}`

আমি চরিত্রগুলি সূচীকরণ সম্পর্কে @ মার্টিনএেন্ডারের ধারণা পছন্দ করেছি -\|/এবং এটি দেখতে ES6- এ কীভাবে হবে তা আমি দেখতে চেয়েছিলাম। স্পষ্টতই আমি এত ভাল করিনি। এটি ব্যবহার করে এটি উন্নত করা যায় কিনা তা জানার চেষ্টা করছি for...of

সম্পাদনাগুলি

  • আমি ইঙ্গিতটি .replaceসরাসরি g()পরিবর্তে সরানোতে রেজিএক্সপ্যাক এবং কলটি সরিয়ে ফেলতে পরিচালিত হয়েছি ।
  • আমি ঘটনাক্রমে f=দ্বিতীয় বাইট গণনায় গণনা

পরীক্ষা

f=h=>n=>` ${[(g=(j,m=1)=>` -\\|/`[(j<n)*m])(h,2),g(h+1,3),g(h+2,4)].join``}${[...Array(h)].map((_,i)=>`
(${g(h-i-1)})${g(h+i+3)}`).join``}`
document.write(`<pre>${[[2,0],[2,1],[2,2],[2,3],[2,4],[2,5],[2,6],[2,7],[1,1],[1,5],[4,7],[5,0]].map(a=>f(a.shift())(a.shift())).join`

`}</pre>`)


3

জাভা, 186 177 বাইট

void f(int h,int n){for(int i=0;i<h+1;i++)System.out.print((i>0?"(":" ")+(i>0?n>h-i-2?"-":" ":n>h+0?"\\":" ")+(i>0?")":n>h+1?"|":" ")+(i>0?n>h+2+i?"-":" ":n>h+2?"/":" ")+"\n");}

অবহেলিত অনলাইনে চেষ্টা করুন

String f(int h, int n)
{
    String s=" ";
    s+=n>h+0?"\\":" ";
    s+=n>h+1? "|":" ";
    s+=n>h+2? "/":" ";
    s+="\n";

    for(int i=0; i<h; i++)
    {
        s+="(";
        s+=n>h-i-1?"-":" ";
        s+=")";
        s+=n>h+3+i?"-":" ";
        s+="\n";
    }

    return s;
}

ল্যাম্বডা ব্যবহার করে আপনি বাইটগুলি বাঁচাতে পারেন - আপনি সম্ভবত ল্যাম্বডা শরীরটিও ছাড়তে পারেন
ড্যানিয়েল এম

2
Ungoled জাভা কোডটি সংকলনের জন্য আমার কি কিছু কাস্টম আইডিই দরকার ? : ডি
কিম্যাক্স

@ কিম্যাক্স .. দোহ!
খালেদ.কে

3

এক্সেল, 131 বাইট

ইনপুট টিউপল হিসাবে নেওয়া হয়েছে, উচ্চতা Hইন A1, Nইন B1। সূত্রযুক্ত কক্ষের পাঠ্য মোড়ক চালু করা দরকার। মনো-ফাঁকযুক্ত ফন্ট ব্যবহার করার পরামর্শ দিন।

=LEFT(" \|/",MAX(0,B1-A1+1))&"
"&REPT("(-)-
",MAX(0,B1-A1-3))&REPT("( )
",MAX(0,A1-B1))&REPT("(-)
",A1-MAX(0,B1-A1-3)-MAX(0,A1-B1))

অপূর্ব সমাধান! আপনার যুক্ত করা উচিত যে এটি ইনপুটটিকে 2-টিউপল হিসাবে গ্রহণ করবে A1এবং B1সাধারণ নোটটি যুক্ত করুন যে এর জন্য কলিং সেলটির মোড়ক পাঠ্য বিকল্পটি সত্য হওয়া দরকার। এছাড়াও সম্ভবত সঠিক প্রান্তিককরণ পেতে এটির মনো-স্পেস ফন্ট যেমন কুরিয়ার নিউ বা লুসিডিয়া কনসোল থাকা উচিত
টেলর স্কট

1
ধন্যবাদ @ টেলরস্কট। আপনার পরামর্শ সহ আপডেট উত্তর।
ওয়ার্নিশ

2

সি ++ 11, 155 148 145 বাইট

void f(int h,int n){cout<<string{" \\|/",max(min(3,n-h),0)+1}<<'\n';for(int i=0;i<h;++i)cout<<(h-i<=n?"(-)":"( )")<<(i<max(n-h-3,0)?"-\n":"\n");}

অসমাপ্ত :

void f(int h,int n)
{
  cout << string{" \\|/", max(min(3, n-h), 0) + 1} << '\n';
  for(int i=0; i<h; ++i)
    cout << (h-i <= n ? "(-)" : "( )") << (i < max(n-h-3,0) ? "-\n" : "\n");
}

ব্যবহার :

#include <iostream>
#include <string>
using namespace std;

void f(int h,int n){cout<<string{" \\|/",max(min(3,n-h),0)+1}<<'\n';for(int i=0;i<h;++i)cout<<(h-i<=n?"(-)":"( )")<<(i<max(n-h-3,0)?"-\n":"\n");}

int main()
{
  int h,n;
  cin >> h >> n;
  f(h, n);
}


1

পাইথন 3, 134 121 118 111 বাইট

def f(h,n):print('\|/'[:max(0,n-h)]+'\n'+'\n'.join('(-)-'if h<n-x-3else('(-)','( )')[x+n<h] for x in range(h)))

এটি এখানে পরীক্ষা করুন: https://repl.it/CYL1/0

আন golfed:

def f(h,n):
  top=['\|/'[:max(0,n-h)]]
  stack=['( )'if x+n<h else'(-)'for x in range(h)]
  overflow=top+stack
  v=n-3
  while v>h:
      overflow[h-v]+='-' #add side overflow
      v-=1

  print('\n'.join(overflow))

আমি তালিকাটি বোঝার জন্য পাশের ওভারফ্লোটি যুক্ত করতে চাই, তবে আমি এটি আটকানোতে পারি না, তাই আমাকে লুপটি দিয়ে যেতে হয়েছিল। 13 বাইট সংরক্ষিত!


আউটপুট বন্ধ আছে, আপনাকে সম্ভবত '\|/'[:max(0,n-h)]পাইথন 2 সমাধানের মতো হতে হবে।
বাসফল্ট


1

পিপ , 50 বাইট

Ps.(0Xa."\|/")@<bDC0Fi,aP"()"WV"- "@[b<a-ib<a+4+i]

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

ওহ, এটি অনেক দীর্ঘ ... তবে কীভাবে আর এটি সংক্ষিপ্ত করবেন জানেন না। সাইক্লিকাল ইনডেক্সিং, যা সাধারণত সহায়ক হয়, এবার অতিরিক্ত বাইট খরচ হয়।


1

পাওয়ারশেল , 109 108 104 বাইট

param($n,$h)-join" \|/"[0..(($d=$n-$h),0)[$d-lt0]]
1..$h|%{("( )","(-)")[$h-$_-lt$n]+"-"*($h+$_+2-lt$n)}

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

ব্যয়বহুল ইনডেক্সিংয়ে অনেক হারিয়েছে তবে এখনও শালীন-ইশ। আমি নিশ্চিত নই যে আমার সূচক গণিতটি সর্বোত্তম। একটি বাইট সংরক্ষণ করতে অন্য উত্তরগুলি থেকে কিছু যুক্তি চুরি করেছে। -4 বাইটের জন্য কিছু প্যারেন্সকে পপ করার নজিরটিও মনে আছে।


0

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

-U…( )¸¹иε²N›ið'-:]RεX4-N@i'-«]" \|/"XdX*>£š»

অবশ্যই গল্ফ করা যেতে পারে .. এটির বর্তমান ফর্ম টিবিএইচ নিয়ে খুব বেশি খুশি নন।

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

ব্যাখ্যা:

-                # Subtract the 2nd (implicit) input `n` from the 1st (implicit) input `h`
                 #  i.e. `h`=3, `n`=8 → 5
 U               # Pop and store it in variable `X`
…( )             # Push string "( )"
    ¸            # Wrap it into a list: ["( )"]
     ¹и          # Repeat it the first input (`h`) amount of times
                 #  i.e. 3 → ["( )","( )","( )"]
ε                # Map each to:
 ²Ni            #  If the second input `n` is larger than the map-index N:
                 #    i.e. `n`=8 >= N=0 → 1 (truthy)
     ð'-:       '#   Replace the space with a "-"
                 #    i.e. "( )" → "(-)"
]                # Close both the if and map
 R               # Reverse the list
ε                # Map each to:
 X4-N@i          #  If `X` minus 4 is larger than or equal to the map-index N:
                 #     i.e. `X`=5 and N=0 → 5-4 >= 0 → 1 (truthy)
                 #     i.e. `X`=5 and N=2 → 5-4 >= 2 → 0 (falsey)
       '-«      '#   Append a "-"
]                # Close both the if and map
 " \|/"          # Push String " \|/"
       Xd        # Check if `X` is 0 or positive (0 if negative, 1 if 0 or positive)
                 #  i.e. `X`=5 → 1 (truthy)
         X*      # Multiply it by `X`
                 #  i.e. 1 * 5 → 5
           >     # Increase it by 1
                 #  i.e. 5 → 6
            £    # Take that many character of the string " \|/"
                 #  i.e. 6 → " \|/"
             š   # Prepend it to the list
                 #  i.e. ["(-)-","(-)-","(-)"] and " \|/" → [" \|/","(-)-","(-)-","(-)"]
              »  # Join the list by newlines (and output implicitly)
                 #  i.e. [" \|/","(-)-","(-)-","(-)"] → " \|/\n(-)-\n(-)-\n(-)"

যদি এটি আপনার কাছে আরও ভাল বোধ করে তবে আমার যা ছিল তা এখানে রয়েছে: LR'(ì')«¹x‚3+¬UŸ¦ζJ¹XŸJ¦1úr)˜»এবং এটি কেবল অর্ধেক হয়ে গেছে।
ম্যাজিক অক্টোপাস আরন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.