एसक्यूएल, 182 175 173 187 बाइट्स
ऐसा नहीं है कि यह कभी सबसे छोटा होगा, लेकिन यह अभी भी sql को कम करने की कोशिश कर रहा है;) lol मैंने यह Oracle 11 में किया था, हालाँकि, ये मूल SQL होना चाहिए। [संपादित करें] जैसा कि बताया गया है, मैंने उस समय लागू नहीं किया था जब इनपुट = १ नियम - केवल २ लाइनें दिखाते हैं। इसे करने के लिए एक बेहतर तरीका के बारे में सोच भी नहीं सकते, हालांकि, मैंने v लॉजिक को संशोधित करके एक युगल बाइट्स को बचा लिया;) समय से पहले 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] बदल दिए और & # यह 2 वर्णों को काटता है, लेकिन उपयोगकर्ता को दो बार # त्रिकोण के इनपुट के लिए मजबूर करता है ...: PI को मेरी "अच्छी कोडिंग आदतों" का उपयोग करके एहसास हुआ कि && मैं 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>