এসকিউএল, 182 175 173 187 বাইট
এটি কখনও সংক্ষিপ্ততম হবে না এমন নয় তবে এটি এখনও স্ক্যুএলকে হ্রাস করার চেষ্টা করার জন্য মজাদার)) আমি ওরাকল ১১-এ এটি করেছি, তবে এগুলি বেসিক এসকিউএল হওয়া উচিত। [সম্পাদনা] হিসাবে উল্লেখ করা হয়েছে, আমি যখন ইনপুট = 1 বিধি প্রয়োগ করি নি - কেবল 2 টি লাইন দেখায় show এটি করার আরও ভাল উপায়ের কথা ভাবতে পারি না, তবে আমি ভি লজিকটি সংশোধন করে একটি দম্পতি বাইট সংরক্ষণ করেছি;) সময়ের আগে 2 যোগ করে পরে পুনরাবৃত্তি না করে একটি দম্পতি বাইট সংরক্ষণ করে [/ সম্পাদনা]
select decode(&i,1,'',rpad(' ',v,'____')||z)||rpad(' /',v,'\ /')||decode(y,1,'\')||z||rpad('/',v-1,'__\/')||decode(y,1,'__\')from(select 2+floor(&i/2)*4v,mod(&i,2)y,chr(10)z from dual);
[edit1] কিছু অপ্রয়োজনীয় স্পেস সরিয়ে দিয়েছে [/ edit1] [edit2] &&I কে কেবল & i তে পরিবর্তন করেছে। এটি 2 টি অক্ষর হ্রাস করে, তবে ব্যবহারকারীকে # টি ত্রিভুজ দুটি বার ইনপুট করতে বাধ্য করে ...: পিআই বুঝতে পেরেছিলাম যে আমার "ভাল কোডিং অভ্যাস" ব্যবহার করে && আমার ব্যয় হয় 2 বাইট !! ভয়!! [/ Edit2]
ব্যাখ্যা
(দ্রষ্টব্য: আমি এই ব্যাখ্যায় && 1 ব্যবহার করি যাতে এটি কেবল একবার অনুরোধ জানায়, উপরের & 1 টি কোড স্পেস সংরক্ষণ করে, তবে একাধিকবার অনুরোধ করে;))
select -- line 1
decode(&&1,1,'', -- don't need line 1 if input is 1
rpad(' ',v,'____') || z ) || -- every pair of triangles
-- line 2
rpad(' /',v,'\ /') || -- every pair of triangles
decode(y,1,'\') || z || -- add the final triangle, input: 1,3,5 etc.
-- line 3
rpad('/',v-1,'__\/') || -- every pair of triangles
decode(y,1,'__\') -- add the final triangle, input: 1,3,5 etc.
from (select 2+floor(&&i/2)*4 v, -- common multiplier. 4 extra chars for every triangle pair
mod(&&i,2) y, -- Flag for the final triangle (odd inputs, 1,3,5, etc)
chr(10) z -- CR, here to save space.
from dual);
আউটপুট
SQL> accept i
1
SQL> /
/\
/__\
SQL> accept i
2
SQL> /
____
/\ /
/__\/
SQL> accept i
3
SQL> /
____
/\ /\
/__\/__\
SQL> accept i
12
SQL> /
________________________
/\ /\ /\ /\ /\ /\ /
/__\/__\/__\/__\/__\/__\/
SQL>