आयताकार छद्म भग्न


13

लक्ष्य

कार्यक्रम का लक्ष्य क्षैतिज और लंबवत रूप से बारी-बारी से ASCII कला आयत को बार-बार आकार में दोगुना करना है। हर बार आयत आकार में दोगुनी हो जाती है, अतिरिक्त क्षेत्र को एक अलग चरित्र द्वारा दर्शाया जाता है और पिछले क्षेत्र अपरिवर्तित रहते हैं। दो सबसे छोटे वर्गों में एक-एक वर्ण होता है और किसी भी कोने में हो सकता है।

कार्यक्रम इनपुट के रूप में एक पूर्णांक को स्वीकार करता है, पूर्ण आयत वाले वर्गों की संख्या को परिभाषित करता है।

किसी अन्य बाहरी संसाधन या इनपुट की अनुमति नहीं है।

नमूना इनपुट और आउटपुट

10

ABDDFFFFHHHHHHHHJJJJJJJJJJJJJJJJ
CCDDFFFFHHHHHHHHJJJJJJJJJJJJJJJJ
EEEEFFFFHHHHHHHHJJJJJJJJJJJJJJJJ
EEEEFFFFHHHHHHHHJJJJJJJJJJJJJJJJ
GGGGGGGGHHHHHHHHJJJJJJJJJJJJJJJJ
GGGGGGGGHHHHHHHHJJJJJJJJJJJJJJJJ
GGGGGGGGHHHHHHHHJJJJJJJJJJJJJJJJ
GGGGGGGGHHHHHHHHJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ

चयन करने का मापदंड

एक सप्ताह में सबसे छोटा कोड अंक जीतता है।


4 की गैर-शक्तियों के लिए आउटपुट क्या होना चाहिए?
मारिनस

अनुक्रम ए, बी, सी, आदि का होना आवश्यक है?
केंडल फ्रे

2
@marinus 4 की शक्तियों के बारे में क्या खास है? हो सकता है कि आपने उदाहरण को गलत समझा हो?
केंडल फ्रे

@KendallFrey, नहीं, बस n अद्वितीय मुद्रण योग्य वर्ण होने की आवश्यकता है ।
हाथ-ई-फूड

क्या इसे ऊपरी बाएँ कोने में बिल्कुल ठीक करना है
mniip

जवाबों:


10

एपीएल, 25 चार्ट / बाइट्स *

{⍉⍣⍵⊃{a,⍺⍴⍨⍴a←⍉⍪⍵}/⌽⍵↑⎕A}

एक्स्प्लोडेड वीयू

{                   ⍵↑⎕A}   ⍝ take the first ⍵ letters
    ⊃{           }/⌽        ⍝ fold over them, using the first one as initial accum. value
            a←⍉⍪⍵           ⍝    ensure the accum. is a table, transpose it and call it 'a'
        ⍺⍴⍨⍴                ⍝    make a table as large as 'a' filled with the next letter
      a,                    ⍝    append it to the right of 'a' and loop as new accumulator
 ⍉⍣⍵                        ⍝ transpose the result as many times as the original ⍵ number

उदाहरण

      {⍉⍣⍵⊃{a,⍺⍴⍨⍴a←⍉⍪⍵}/⌽⍵↑⎕A}¨⍳8
A AB  AB  ABDD  ABDD  ABDDFFFF  ABDDFFFF  ABDDFFFFHHHHHHHH
      CC  CCDD  CCDD  CCDDFFFF  CCDDFFFF  CCDDFFFFHHHHHHHH
                EEEE  EEEEFFFF  EEEEFFFF  EEEEFFFFHHHHHHHH
                EEEE  EEEEFFFF  EEEEFFFF  EEEEFFFFHHHHHHHH
                                GGGGGGGG  GGGGGGGGHHHHHHHH
                                GGGGGGGG  GGGGGGGGHHHHHHHH
                                GGGGGGGG  GGGGGGGGHHHHHHHH
                                GGGGGGGG  GGGGGGGGHHHHHHHH

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
*: APL को अपनी (विरासत) सिंगल-बाइट चारसेट में लिखा जा सकता है जो APL प्रतीकों को ऊपरी 128 बाइट मानों में मैप करता है। इसलिए, स्कोरिंग के उद्देश्य से, N वर्णों का एक प्रोग्राम जो केवल ASCII वर्णों और APL प्रतीकों का उपयोग करता है, को N बाइट्स माना जा सकता है।


9

GolfScript, 30 अक्षर

~(,[0`]{{[49+]1$,*+}+%zip}@/n*

उदाहरण ( ऑनलाइन रन करें ):

> 7
01335555
22335555
44445555
44445555
66666666
66666666
66666666
66666666

यह सम संख्याओं के लिए गलत आउटपुट उत्पन्न करता है, जैसे कि प्रश्न में ...
टिम्पी

@ टिमवी मैंने अभी-अभी इसका परीक्षण किया है यह मेरे लिए काम करता है। आउटपुट ट्रांसपोज़्ड है, लेकिन ओरिएंटेशन प्रश्न में निर्दिष्ट नहीं किया गया था।
हावर्ड

ठीक है, मुझे लगता है कि मैं तब बहुत सख्त था :)
टिमवी

@ हावर्ड एचएम, यही मैं समझता हूं "और पिछले क्षेत्र अपरिवर्तित रहते हैं"। वह कहते हैं कि पहले दो वर्ण किसी भी कोने में हो सकते हैं, लेकिन वे यह नहीं कहते कि अभिविन्यास बदल सकता है।
मार्टिन एंडर

7

पायथन 2.7 - 85 103

यह zip(*s)सूची को लगातार स्थानांतरित करने के लिए सिंटैक्स का उपयोग करता है । डैनियल के लिए बड़ा धन्यवाद उसकी टिप के लिए जिसने 12 पात्रों का मुंडन किया! फिर अक्षरों के बजाय संख्याओं का उपयोग करके कुछ और मुंडा।

s=[]
for i in range(input()):x=1<<i/2;s=zip(*s+[chr(65+i)*x]*x)
for i in s:print''.join(i)

इसके अलावा, बिट शिफ्ट के 1<<xबजाय इसका उपयोग 2**xकम (?) पूर्वता है। का निरीक्षण करें:

>>> 1<<(2*3)
64
>>> 1<<2*3
64
>>> 2**2*3
12
>>> 2**(2*3)
64

और कुछ आउटपुट:

10
01335555777777779999999999999999
22335555777777779999999999999999
44445555777777779999999999999999
44445555777777779999999999999999
66666666777777779999999999999999
66666666777777779999999999999999
66666666777777779999999999999999
66666666777777779999999999999999
88888888888888889999999999999999
88888888888888889999999999999999
88888888888888889999999999999999
88888888888888889999999999999999
88888888888888889999999999999999
88888888888888889999999999999999
88888888888888889999999999999999
88888888888888889999999999999999

1
अच्छा लगा। आप इसे थोड़ा छोटा कर सकते हैं for i in s:print''.join(i)
डैनियल लुबरोव

5

रूबी, 88

मानक इनपुट से एन पढ़ता है।

s=[?A]
66.upto(64+gets.to_i){|i|x=i.chr*y=s.size;i%2<1?s.map!{|r|r+x}:s+=[x*2]*y}
puts s

एन = 8 के लिए उदाहरण उपयोग:

echo 8 | rectangular-pseudo-fractal.rb

आउटपुट:

ABDDFFFFHHHHHHHH
CCDDFFFFHHHHHHHH
EEEEFFFFHHHHHHHH
EEEEFFFFHHHHHHHH
GGGGGGGGHHHHHHHH
GGGGGGGGHHHHHHHH
GGGGGGGGHHHHHHHH
GGGGGGGGHHHHHHHH

एन = 10

echo 10 | rectangular-pseudo-fractal.rb

आउटपुट:

ABDDFFFFHHHHHHHHJJJJJJJJJJJJJJJJ
CCDDFFFFHHHHHHHHJJJJJJJJJJJJJJJJ
EEEEFFFFHHHHHHHHJJJJJJJJJJJJJJJJ
EEEEFFFFHHHHHHHHJJJJJJJJJJJJJJJJ
GGGGGGGGHHHHHHHHJJJJJJJJJJJJJJJJ
GGGGGGGGHHHHHHHHJJJJJJJJJJJJJJJJ
GGGGGGGGHHHHHHHHJJJJJJJJJJJJJJJJ
GGGGGGGGHHHHHHHHJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ

इस का आउटपुट कैसा दिखता है?

@LegoStormtroopr ने कुछ उदाहरण जोड़े, यह प्रश्न के समान सटीक प्रारूप है।
पॉल प्रेस्टिज

4

जम्मू, 57 43

(,`,.@.(=/@$@[)$${&a.@(66+2&^.@#@,)^:)1$'A'

उदाहरण:

5 (,`,.@.(=/@$@[)$${&a.@(66+2&^.@#@,)^:)1$'A'
ABDDFFFF
CCDDFFFF
EEEEFFFF
EEEEFFFF

7 (,`,.@.(=/@$@[)$${&a.@(66+2&^.@#@,)^:)1$'A'
ABDDFFFFHHHHHHHH
CCDDFFFFHHHHHHHH
EEEEFFFFHHHHHHHH
EEEEFFFFHHHHHHHH
GGGGGGGGHHHHHHHH
GGGGGGGGHHHHHHHH
GGGGGGGGHHHHHHHH
GGGGGGGGHHHHHHHH

सी और डी दोनों क्षैतिज रूप से विस्तारित होते हैं। उन्हें वैकल्पिक रूप से क्षैतिज और लंबवत होना चाहिए।
हाथ-ई-खाद्य

@ हाथ-ई-फूड तुम सही हो। यह बात बताने के लिए धन्यवाद। मैंने कोड (और पोस्ट) तय कर दिया है।
बारबेरोट

4

MATLAB, 86 वर्ण

MATLAB में मेरा सबसे छोटा प्रयास, @flawr (दो बार!) द्वारा pimped:

function M=f(n)
M='';
if n
M=cat(mod(n,2)+1,f(n-1),64+n*ones(2.^fix(n/2-[.5,1])));
end

उदाहरण आउटपुट:

>> disp(f(7))
ACEEGGGG
BCEEGGGG
DDEEGGGG
DDEEGGGG
FFFFGGGG
FFFFGGGG
FFFFGGGG
FFFFGGGG

यह आपको कुछ बाइट्स function M=f(n) M=''; if n M=cat(mod(n,2)+1,f(n-1),64+n*ones(2.^fix([n-1,n-2]/2))); end
बचाएगा

@flawr: ओह! जाहिर है!
knedlsepp

PS के fixसाथ तर्क को प्रतिस्थापित करके एक और बाइट सहेजें fix(n/2-[.5,1]): वास्तव में अच्छा समाधान के साथ cat, इस उपयोग के बारे में नहीं जानता था कि आप आयाम कहां चुन सकते हैं =)
त्रुटी

@flawr: ऐसा लगता है कि मैं काफी बेकार हूं। ;-)
knedlsepp

मैंने अभी देखा कि आप यहाँ नए हैं, इसलिए codegolf.SE पर आपका स्वागत है, यह अच्छा है।) कुछ और मतलबी दीवाने हैं, b।) जर्मन भाषी यहाँ (मुझे लगता है)!
दोष

3

q [73 वर्ण]

{"c"$64+{n:x 0;m:x 1;if[2>n;m:(),m];(o;$[n-2*n div 2;,';,][m;(#m;#m 0)#o:n+1])}/[x-1;(1;1)]1}

उदाहरण

10
"ABDDFFFFHHHHHHHHJJJJJJJJJJJJJJJJ"
"CCDDFFFFHHHHHHHHJJJJJJJJJJJJJJJJ"
"EEEEFFFFHHHHHHHHJJJJJJJJJJJJJJJJ"
"EEEEFFFFHHHHHHHHJJJJJJJJJJJJJJJJ"
"GGGGGGGGHHHHHHHHJJJJJJJJJJJJJJJJ"
"GGGGGGGGHHHHHHHHJJJJJJJJJJJJJJJJ"
"GGGGGGGGHHHHHHHHJJJJJJJJJJJJJJJJ"
"GGGGGGGGHHHHHHHHJJJJJJJJJJJJJJJJ"
"IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ"
"IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ"
"IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ"
"IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ"
"IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ"
"IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ"
"IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ"
"IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ"

3
"AB"
"CC"

6
"ABDDFFFF"
"CCDDFFFF"
"EEEEFFFF"
"EEEEFFFF"

3

स्कल्प्टिंग , 59 वर्ण

❶塊갠分감⓶左貶終辦감標가⓺貶⓹開上❶❶貶雙是不⒉갠乘⒉終가①上뀀❷②갠分小是增終❸⓷另要감右⓶갠加⓶終丟字⓶終丟겠終

(अगर मैं बेस -2 लघुगणक के लिए निर्देश था, तो यह कार्यक्रम काफी कम हो सकता है, लेकिन मैं ऐसा नहीं करता, इसलिए मैं इसे लूप के साथ मैन्युअल रूप से करता हूं।)

एनोटेट कोड

n इनपुट है

❶ | n n

f = i => (1 << (i/2)) - 1;
塊갠分감⓶左貶終 | n n f

w = f(n);
辦 | n w f

d = 1;
감 | n w f d

s = "";
標 | n w f d M [s]

for (y in [0..f(n-1)])
가⓺貶⓹開上 | w d M [s] y

    if ((y & (y-1)) == 0) d *= 2;
    ❶❶貶雙是不⒉갠乘⒉終 | w d M [s] y

    for (x in [0..w])
    가①上 | w d M [s] y x

        c = 64; // '@'
        뀀 | w d M [s] y x c

        if (x < d/2) c++;
        ❷②갠分小是增終 | w d M [s] y x c

        a = x | y;
        ❸⓷另 | w d M [s] y c a

        while (a > 0) { a >>= 1; c += 2; }
        要감右⓶갠加⓶終丟 | w d M [s] y c

        s += (char) c;
        字⓶ | w d M [s] y
    終丟 | w d M [s]

    s += "\n"
    겠 | w d M [s]
終

उत्पादन

के लिए n= 6:

ABDDFFFF
CCDDFFFF
EEEEFFFF
EEEEFFFF

बेशक आप किसी भी अन्य आधार चरित्र को बदल सकते हैं 뀀( @जैसे, अंतरिक्ष के साथ और n= 7:

!"$$&&&&
##$$&&&&
%%%%&&&&
%%%%&&&&
''''''''
''''''''
''''''''
''''''''

उच्चतम संख्या जो प्रोग्राम को अधिक लंबा नहीं बनाती (= 255) है, जो हमें ( n= 8 इस बार) देती है:

Āāăăąąąąćććććććć
ĂĂăăąąąąćććććććć
ĄĄĄĄąąąąćććććććć
ĄĄĄĄąąąąćććććććć
ĆĆĆĆĆĆĆĆćććććććć
ĆĆĆĆĆĆĆĆćććććććć
ĆĆĆĆĆĆĆĆćććććććć
ĆĆĆĆĆĆĆĆćććććććć

यदि हम प्रोग्राम को 1 वर्ण लंबा बनाते हैं, उदाहरण के लिए 냟및(= \u4DFF) और n= 9 का उपयोग करते हैं, तो हम प्राप्त करते हैं:

一丁七七丅丅丅丅万万万万万万万万
丂丂七七丅丅丅丅万万万万万万万万
丄丄丄丄丅丅丅丅万万万万万万万万
丄丄丄丄丅丅丅丅万万万万万万万万
丆丆丆丆丆丆丆丆万万万万万万万万
丆丆丆丆丆丆丆丆万万万万万万万万
丆丆丆丆丆丆丆丆万万万万万万万万
丆丆丆丆丆丆丆丆万万万万万万万万
丈丈丈丈丈丈丈丈丈丈丈丈丈丈丈丈
丈丈丈丈丈丈丈丈丈丈丈丈丈丈丈丈
丈丈丈丈丈丈丈丈丈丈丈丈丈丈丈丈
丈丈丈丈丈丈丈丈丈丈丈丈丈丈丈丈
丈丈丈丈丈丈丈丈丈丈丈丈丈丈丈丈
丈丈丈丈丈丈丈丈丈丈丈丈丈丈丈丈
丈丈丈丈丈丈丈丈丈丈丈丈丈丈丈丈
丈丈丈丈丈丈丈丈丈丈丈丈丈丈丈丈

3

सी #, 239 185 182 180 बाइट्स

कम # क्रिया भाषाओं पर C # का कुछ भी नहीं है।

using C=System.Console;
class P{
    static void Main(string[]a){
        for(int x,i,n=int.Parse(a[0]);n-->0;C.CursorTop=0)
            for(i=1<<n,x=1<<n/2+n%2;i-->0;)
                C.Write((char)(n+33)+(i%x<1?"\n":""));
    }
}

उत्पादन, चरित्र पूर्वनिर्धारण के लिए चुना गया:

!"$$&&&&((((((((****************
##$$&&&&((((((((****************
%%%%&&&&((((((((****************
%%%%&&&&((((((((****************
''''''''((((((((****************
''''''''((((((((****************
''''''''((((((((****************
''''''''((((((((****************
))))))))))))))))****************
))))))))))))))))****************
))))))))))))))))****************
))))))))))))))))****************
))))))))))))))))****************
))))))))))))))))****************
))))))))))))))))****************
))))))))))))))))****************

1
यकीन नहीं है कि आप कैसे गिने जाते हैं, लेकिन मैंने 184 को गिना। आप बाहरी forलूप से ब्रेसिंग को 182 बनाते हुए दो पात्रों को बचा सकते हैं ।
बॉब

धन्यवाद @ याकूब! सूक्ष्म-अनुकूलन करते समय मेरा गर्भपात हो गया होगा।
हाथ-ई-फूड

2

पेरल, 122 वर्ण

$N=<>;$x=$r=1;do{$_=chr$a+++65;$s=$x;$o=$_ x$s;$o.=$_++x$s,$s*=2while$N+65>ord++$_;print"$o\n"x$r;$r=$x;$x*=2}while++$a<$N

जोड़े गए व्हाट्सएप के साथ:

$N=<>;
$x=$r=1;
do{
    $_=chr$a+++65;
    $s=$x;
    $o=$_ x$s;
    $o.=$_++x$s,$s*=2 
        while $N+65>ord++$_;
    print "$o\n"x$r;
    $r=$x;
    $x*=2
} while++$a<$N

आउटपुट:

$ echo 8 | perl pseudo-fractal.pl
ABDDFFFFHHHHHHHH
CCDDFFFFHHHHHHHH
EEEEFFFFHHHHHHHH
EEEEFFFFHHHHHHHH
GGGGGGGGHHHHHHHH
GGGGGGGGHHHHHHHH
GGGGGGGGHHHHHHHH
GGGGGGGGHHHHHHHH

1

पेरल,  94   81 चार्ट

$N=$_;$_=$:=A;$h=1;++$i%2?s/$/$:x$h/gem:($_.=($/.$:x2x$h)x$h,$h*=2)while++$:,--$N

यह नई पंक्तियों और स्तंभों और पंक्तियों और स्तंभों को जोड़कर, फ्रैक्टल इटेरेटिवली लेटर का निर्माण करता है ... ऐसा करने के लिए सरल स्ट्रिंग ऑपरेशन का उपयोग करता है। ध्यान दें कि मैं वाक्य रचना चीनी के लिए अनुमति देने के लिए अक्षर एक के बजाय मानक चर का दुरुपयोग कर रहा हूं (जैसे रिक्त स्थान - $:x2आदि)।

अतिरिक्त व्हाट्सएप और टिप्पणियों के साथ:

$N=$_;
$_=$:=A;                    # $: is current letter
$h=1;

++$i%2? 
s/$/$:x$h/gem:              # every odd run - add "columns"
($_.=($/.$:x2x$h)x$h,$h*=2) # every even run - add "rows"
while++$:,--$N              # iterate over letters

कुछ आउटपुट:

$ echo 8 | perl -p pseudo-fractal.fill.pl.5a5
ABDDFFFFHHHHHHHH
CCDDFFFFHHHHHHHH
EEEEFFFFHHHHHHHH
EEEEFFFFHHHHHHHH
GGGGGGGGHHHHHHHH
GGGGGGGGHHHHHHHH
GGGGGGGGHHHHHHHH
GGGGGGGGHHHHHHHH

1

स्कल्प्टिंग , 45 अक्षर

가⓶貶上倘감雙⓶壹長⓸講增字⓶復⓷是標⓷各①合終并不⓶梴❸⓶疊合終不뀐標뀐并終終⓶丟各겠終

यह समाधान अन्य स्कल्प्टिंग समाधान से पूरी तरह से अलग तरीके से काम करता है। यह बहुत अधिक उबाऊ है, लेकिन यह कम है ...

एनोटेट

for i in [0..n-1]
가⓶貶上
    if (i != 0)
    倘
        i &= 1
        감雙
        e = list[0].Length
        ⓶壹長
        c = ((char) (c[0] + 1)).Repeat(e)
        ⓸講增字⓶復
        if (i)
        ⓷是
            concatenate c onto every element of list
            標⓷各①合終并
        else
        不
            concatenate c.Repeat(list.Length) onto list
            ⓶梴❸⓶疊合
        終
    else (i.e., i == 0)
    不
        c = "A"
        뀐
        list = ["A"]
        標뀐并
    終
終
concatenate "\n" to every element in list
⓶丟各겠終

1

डेल्फी 348 || 449 इंडेंट के साथ

बिना इंडेंट के

var inp,j,i,x: integer;s:string;L:TStringlist;begin L:=TStringList.Create;readln(s);inp:=StrToIntDef(s,4);if inp<4then inp:=4;s:='';l.Add('AB');for I:=2to inp-1do begin j:=Length(L[0]);if i mod 2=0then for x:=0to L.Count-1do L.Add(s.PadLeft(j,Chr(65+i)))else for x:=0to L.Count-1do L[x]:=L[x]+s.PadLeft(j,Chr(65+i));end;Write(L.GetText);readln;end.

इंडेंट के साथ

var
  inp,j,i,x: integer;
  s:string;
  L:TStringlist;
begin
  L:=TStringList.Create;
  readln(s);
  inp:=StrToIntDef(s,4);
  if inp<4then inp:=4;
  s:='';
  l.Add('AB');

  for I:=2to inp-1do
  begin
    j:=Length(L[0]);
    if i mod 2=0then
      for x:=0to L.Count-1do L.Add(s.PadLeft(j,Chr(65+i)))
    else
      for x:=0to L.Count-1do
        L[x]:=L[x]+s.PadLeft(j,Chr(65+i));
  end;
  Write(L.GetText);
  readln;
end.

1

CJam, 30 (23) बाइट्स

CJam इस चुनौती से कुछ महीने छोटा है, इसलिए यह ग्रीन चेकमार्क के लिए योग्य नहीं है।

l~(Sa1${{_,I'!+*+}%z}fI\{z}*N*

इसका परीक्षण यहां करें।

ओपी ने एक टिप्पणी में स्पष्ट किया कि अद्वितीय मुद्रण योग्य वर्णों के किसी भी सेट की अनुमति है, इसलिए मैं शुरू से ही मुद्रण योग्य ASCII वर्ण ले रहा हूं (कोने में एक जगह के साथ, !अगले और इसी तरह)।

यदि अभिविन्यास सम और विषम इनपुटों के बीच बदल सकता है (जो मुझे नहीं लगता है, लेकिन यही है कि गोल्फस्क्रिप्ट प्रस्तुत करता है), मैं इसे 25 बाइट्स में कर सकता हूं:

S]l~({{_,I'!+*+}%z}fIN*

यह विचार वास्तव में सरल है: एक ग्रिड युक्त स्थान से शुरू करें, और फिर एन -1 बार इसे स्थानांतरित करें और अगले वर्ण के साथ सभी पंक्तियों को दोहराएं।

लंबे संस्करण के लिए, अंत में मैं एक सुसंगत अभिविन्यास की गारंटी देने के लिए फिर से एन -1 बार स्थानांतरित करता हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.