নেস্টেড র‌্যাডিকালগুলি আঁকুন


13

গণিতে অনেক সূত্র নেস্টেড র‌্যাডিকালগুলিতে জড়িত (অন্যান্য বর্গমূলের চিহ্নগুলির মধ্যে বর্গমূলের চিহ্ন) involve আপনার কাজ এখানে আসকি শিল্প ব্যবহার করে আঁকুন।

চশমা

আপনাকে দুটি পূর্ণসংখ্যা দেওয়া হবে, র‌্যাডিকালের অভ্যন্তরের সংখ্যা এবং র‌্যাডিকালগুলির সংখ্যা। আমি মনে করি আপনাকে কী করতে হবে তা বোঝানোর সর্বোত্তম উপায়টি একটি উদাহরণ সহ। এখানে ফলাফল 2, 4:

        ____________________
\      /       _______________
 \    /  \    /     __________
  \  /    \  /  \  /   _____
   \/      \/    \/  \/ 2

এখানে কিছু বিষয় লক্ষণীয়:

  • প্রতিটি মৌলিক উচ্চতা এক এক করে বৃদ্ধি পায়
  • এর দৈর্ঘ্য _সর্বদা 5উচ্চতার চেয়ে বহুগুণ বেশি
  • শেষের পরে /এবং পরবর্তী অভ্যন্তরীণ র‌্যাডিকাল শুরু হওয়ার আগে একটি জায়গা রয়েছে
  • ভিতরে সংখ্যাটি 4 টি সংখ্যার বেশি হবে না
  • র‌্যাডিক্যালসের সংখ্যা যদি 0 হয় তবে কেবল সংখ্যাটি আউটপুট করুন
  • এটি একটি আয়তক্ষেত্রে প্যাড করতে অতিরিক্ত স্থান স্থাপন আপনার উপর নির্ভর করে
  • এটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোড !

পরীক্ষার কেস

2, 4:
        ____________________
\      /       _______________
 \    /  \    /     __________
  \  /    \  /  \  /   _____
   \/      \/    \/  \/ 2

23, 0:
23

4, 1:
  _____
\/ 4

1234, 3:
      _______________
\    /     __________
 \  /  \  /   _____
  \/    \/  \/ 1234

12
আমার অনুভূতিটি অনুভূমিক বারগুলি একই পয়েন্টে শেষ করতে হলে এটি কিছুটা ভাল চ্যালেঞ্জ হবে।
গ্রেগ মার্টিন

উত্তর:


2

পাইথন 3.5, 145 137 বাইট

def s(n,x):[([print(' '*j+'\\'+'  '*i+'/ '+' '*j,end='')for j in range(x-i-1,-1,-1)],print('  '*i+i*'_____'or n))for i in range(x,-1,-1)]

সামান্য শৃঙ্খলাবদ্ধ:

def s(n,x):
    for i in range(x,-1,-1):
        for j in range(x-i-1,-1,-1):
            print(' '*j+'\\'+'  '*i+'/ '+' '*j,end='')
        print('  '*i+i*'_____' or n)

আউটপুট:

s(2,4)
        ____________________
\      /       _______________
 \    /  \    /     __________
  \  /    \  /  \  /   _____
   \/      \/    \/  \/ 2

print(' '*i+'_____'*i or n)7 বাইট সংরক্ষণ সম্পাদনা print(' '*i+i*'_____'or n)8 টি সংরক্ষণ করে
জোনাথন অ্যালান

ধন্যবাদ. আপনি 'বা' এর মতো ব্যবহার করতে পারবেন তা আমি জানতাম না।
জেমস হলিস

2

জাভাস্ক্রিপ্ট, 133 132 131 বাইট

f=(n,r,q=r)=>~r?'1\\0/1 '[x='repeat'](d=q-r).replace(/\d/g,i=>' '[x](+i?d-=.5:r*2))+(r?' '[x](r*2)+'_'[x](5*r):n)+`
`+f(n,r-1,q):''


F=(n,r)=>console.log( f(n,r) )
F(2,4)
F(23,0)
F(4,1)
F(1234,3)
.as-console-wrapper{max-height:100%!important;top:0}


2

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

f=(s,n,i=0,r=(n,c=` `)=>c.repeat(n))=>n?r(n+n)+r(n*5,`_`)+`
`+f(s,n-1).replace(/^/gm,_=>r(i)+`\\${r(n+~i<<1)}/`+r(++i)):s+``
<div oninput=o.textContent=f(s.value,+n.value)><input id=s><input id=n type=number min=0><pre id=o>

3 টি বাইট সংরক্ষণ করুন যদি প্রথম প্যারামিটার সংখ্যার পরিবর্তে স্ট্রিং হতে পারে।


1

পিএইচপি, 178 বাইট

for($r=[" $argv[1]"];$i++<$argv[2];$r[]=$p("",2*$i).$p(_,5*$i,_))for($k=-1;++$k<$i;)$r[$k]=($p=str_pad)("\\".$p("",2*$k)."/",2*$i," ",2).$r[$k];echo join("\n",array_reverse($r));

বাহ যে ভয়ঙ্কর দীর্ঘ।

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