हीरा बनाने वाला +


27

चुनौती :

nइनपुट के रूप में एक पूर्णांक दिया । एक हीरा बनाएं जो कि दी गई संख्या 2x है n

इनपुट:

इनपुट पूर्णांक nऔर 2 <n 2 3000 है।

आउटपुट:

आउटपुट एक स्ट्रिंग होगा और यह एक हीरे के रूप में होगा जिसमें उपयोग करते हुए +शुरू में एक अतिरिक्त रेखा के साथ होगाn+

उदाहरण :

डी (3):

+++
  +
 +++
+++++
+++++
 +++
  +

डी (5):

+++++
    +
   +++
  +++++
 +++++++
+++++++++
+++++++++
 +++++++
  +++++
   +++
    +

डी (6): 

++++++
     +
    +++
   +++++
  +++++++
 +++++++++
+++++++++++
+++++++++++
 +++++++++
  +++++++
   +++++
    +++
     +

जीत का मानदंड:

यह प्रत्येक प्रोग्रामिंग भाषा जीत के लिए बाइट्स में इतना छोटा कोड है।


1
क्या हम nएकजुट हो सकते हैं?
आदम

3
टैली मार्क के+ रूप में उपयोग कर रहे हैं ?
आदम

1
क्या आप एक परीक्षण मामला जोड़ सकते हैं जहां nभी है?
झबरा

2
@ शैगी: यकीन है कि क्यों नहीं। मैं इसे तुरंत जोड़ दूंगा। धन्यवाद
मुहम्मद सलमान

जवाबों:


33

brainfuck , 151 139 बाइट्स

,[.[<]<+[>>]++++[-<++++++++>],]<[<]<<<++++++++++.>>[[>]>[-<+>]>[-<+>]>>[.>>]<<[<]<<.<<[..<<]<.>>-]>[[>]>[.>>]<<[<<]>.>>[..>>]<<,<[<]<<.>>>]

इसे ऑनलाइन आज़माएं!

+टैली अंक ( पोस्टर द्वारा अनुमति ) के रूप में एस के साथ इनपुट के माध्यम से लेता है । इसे फिर से बनाने का फैसला किया, जैसा कि मैंने सोचा था कि पुराने एक से थोड़ा अधिक लंबा हो सकता है (हालांकि यह एक है!)।

पुराना संस्करण (151 बाइट्स):

>--[>+<++++++]<[->+>.<<]++++++++[-<+<++++>>]<++>>[<<.>>-[-<+<<.>>>]<[->+<]>>>+[-<.>>+<]>+[-<+>]<<<]>>[<<<<.>>[-<+<<.>>>]<[->+<]>+>>-[-<.>>+<]>-[-<+>]<]

इसे ऑनलाइन आज़माएं!

प्रारंभिक सेल के रूप में इनपुट लेता है। मैं दूसरे के साथ मदद करने के लिए पहली छमाही का लाभ उठाने का एक तरीका नहीं सोच सकता था, इसलिए उनमें से प्रत्येक के लिए एक लूप है।

यह काम किस प्रकार करता है:

 >--[>+<++++++]  Create 43 ('+') two space to the left of n
 <[->+>.<<]      Print n '+'s while preserving n
 ++++++++[-<+<++++>>]<++  Create 32 (' ') and 10 ('\n')
                         Tape: 32 10 0 n 43 t
 >>
 [ Loop over the first half of the diamond
   <<.>>         Print a newline
   -[-<+<<.>>>]  Decrement n and print n spaces
   <[->+<]       Restore n
   >>>+[-<.>>+<] Increment t and print t '+'s
   >+[-<+>]<<<   Increment t again and restore it
]>>
[ Loop over the second half
  <<<<.>>        Print a newline
  [-<+<<.>>>]<   Print n spaces
  [->+<]>+       Restore and increment n
  >>-[-<.>>+<]   Decrement t and print t '+'s
  >-[-<+>]<      Decrement t again and restore it
]

और सिर्फ मनोरंजन के लिए:

+++++++++
        >
       --[
      >+<++
     ++++]<[
    ->+>.<<]+
   +++++++[-<+
  <++++>>]<++>>
 [<<.>>-[-<+<<.>
>>]<[->+<]>>>+[-<
.>>+<]>+[-<+>]<<<
 ]>>[<<<<.>>[-<+
  <<.>>>]<[->+<
   ]>+>>-[-<.>
    >+<]>-[-<
     +>]<]++
      +++++
       +++
        +

इसे ऑनलाइन आज़माएं!


2
आपको मेरा वोट सिर्फ मज़े की बात के लिए मिला। कूल जवाब
मुहम्मद सलमान

15

कैनवस , 9 बाइट्स

+×O{+×]±╪

यहाँ कोशिश करो!

स्पष्टीकरण (कुछ पात्रों को मोनोस्पेस देखने के लिए बदल दिया गया है):

+×O{+×]±╪
+×         repeat "+" input times
  O        output that
   {  ]    map over 1..input
    +×       repeat "+" that many times
       ±   interpret the array as a 2D string, and reverse it
        ╪  quad-palindromize with 1 horizontal overlap and 0 vertical overlap

12

पायथन 3 , 95 94 75 बाइट्स

def f(n):a=[' '*(n+~i)+'+'*(i-~i)for i in range(n)];return['+'*n]+a+a[::-1]

इसे ऑनलाइन आज़माएं!


कुछ गोल्फिंग में मेरा पहला प्रयास, सुधार के किसी भी सुझाव का स्वागत है।

EDIT: केविन क्रूज़सेन की बदौलत बचा 1 बाइट

EDIT: बाइट काउंट के बारे में गलतफहमी दूर की

संपादित करें: जो किंग और user202729 के लिए कई और बाइट्स धन्यवाद


5
PPCG में आपका स्वागत है! :)
झबरा

1
इसके अलावा, यदि आप पायथन 2 में बदलते हैं, तो print'\n'.join(['+'*n]+a+a[::-1])2 और बाइट्स को बचाने के लिए कोष्ठक के बिना उपयोग किया जा सकता है। हालांकि मुझ से +1। अच्छा पहला जवाब। :)
केविन क्रूज़सेन

1
सबमिशन या तो एक पूर्ण कार्यक्रम हो सकता है (हेडर / फूटर में कुछ भी नहीं) या एक फ़ंक्शन (जिसे अनाम फ़ंक्शन के मामले में एक फ़ंक्शन (या संदर्भ को परिभाषित करना चाहिए lambda))।
user202729

2
और, 2*i+1 == i+i+1 == i-(-i-1) == i-~i
user202729

2
शानदार पहला जवाब। बहुत बढ़िया।
एलपेड्रो

8

05AB1E , 14 बाइट्स

'+×sL·<'+×∊.c»

इसे ऑनलाइन आज़माएं!

व्याख्या

'+×              # push "+" repeated <input> times
   sL            # push range [1 ... input]
     ·<          # multiply each element by 2 and decrement (x*2-1)
       '+×       # replace each number with the corresponding number of "+"'s
          ∊      # mirror vertically
           .c    # center
             »   # join with the "+"-row created at the start

14 बाइट्स भी: L‚˜'+×ćs.∞∊.c»


1
'+×s·ÅÉ'+×∊.C»का उपयोग कर ÅÉएक और है
मैजिक ऑक्टोपस Urn

@MagicOctopusUrn: मेरा प्रारंभिक विचार उपयोग कर ÅÉरहा था लेकिन मैंने इसे त्याग दिया क्योंकि मैंने ·इसे काम करने के लिए उपयोग करने के बारे में नहीं सोचा था ।
इमीना

5

पायथन 3 , 79 78 बाइट्स

def f(n):x=[('++'*i+'+').center(n*2)for i in range(n)];return[n*'+']+x+x[::-1]

इसे ऑनलाइन आज़माएं!

फ़ंक्शन के बारे में मुझे सूचित करने के लिए पायथन गोल्फिंग के इस सुझाव के लिए धन्यवाद .center। तार की सूची लौटाता है।


क्या बाइट गिनती में पाद शामिल नहीं है? उस स्थिति में, मेरा समाधान 58 बाइट्स है
अधिकतम

@ maxb यदि आप किसी फ़ंक्शन का उपयोग कर रहे हैं, तो आम तौर पर लाइनों की सूची के रूप में आउटपुट वापस करना ठीक है
जो किंग

@ जॉकिंग: हम एक बार फिर से करना चाहते हैं? TRY
मुहम्मद सलमान

@ जॉकिंग: यह विफल रहता है।
मुहम्मद सलमान

1
@MuhammadSalman 1. आप n = 5 के लिए वापसी के खिलाफ n = 3 के लिए मेरे कार्य का परीक्षण कर रहे हैं, 2. आपके पास परीक्षण में एक नई रूपरेखा है, और 3. मेरे कोड में प्रत्येक पंक्ति पर अनुगामी स्थान हैं। हो सकता है कि तुम सिर्फ चाहिए देखने के उत्पादन पर अगली बार
जो राजा

4

आर , 135 110 96 बाइट्स

function(n){cat("+"<n,"
",sep="")
for(i in c(1:n,n:1))cat(" "<n-i,"+"<2*i-1,"
",sep="")}
"<"=rep

इसे ऑनलाइन आज़माएं!

@JayCe अंतिम कट के साथ।

repसमारोह जैसे, एक मौजूदा इन्फ़िक्स ऑपरेटर के लिए असाइन किया गया है <या ^तो यह है कि rep("+", n)के बराबर है "<"("+", n)जो का उपयोग कर बाहर लिखा जा सकता है <के रूप में एक इन्फ़िक्स ऑपरेटर के रूप में "+" < nऔर के लिए छोटा "+"<n


1
25 बाइट्स सहेजें और इसे फ़ंक्शन करें।
JayCe

तो पूरी तरह से आपका जवाब :) महान मूल कोड!
JayCe

यहां कुछ व्हाट्सएप हैं जिन्हें हटाया जा सकता है, और कुछ बाइट्स "+"को बचाने के बजाय इसे सीधे उपयोग करने के लिए z! इसे यहां आज़माएं
Giuseppe

1
ग्यूसेप के सुधार के शीर्ष @ngm @Giuseppe पर, विकल्प <के लिए rep100 वर्ण के तहत प्राप्त करने के लिए! यहां
JayCe

3

चारकोल , 15 बाइट्स

G→→↙N+↓‖M↑×⊕ⅈ+‖

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। स्पष्टीकरण:

G→→↙N+

+इनपुट की ऊंचाई और लगभग दो बार चौड़ाई के एक उल्टे त्रिकोण को प्रिंट करें ।

कर्सर को नीचे ले जाएं ताकि यह प्रतिबिंब के बाद अतिरिक्त रेखा पर लैंड करे।

‖M↑

त्रिकोण की दर्पण छवि बनाएं।

×⊕ⅈ+

इनपुट को दोबारा पढ़ने से बचने के लिए वर्तमान कॉलम का उपयोग करके अतिरिक्त रेखा खींचें।

आउटपुट को प्रतिबिंबित करें ताकि अतिरिक्त पंक्ति बाईं ओर इंगित करे।




3

QB64, 82 79 बाइट्स

INPUT n
?STRING$(n,43):FOR a=1TO 2*n:d=a-(a>n)*2*(n-a):?SPC(n-d);STRING$(2*d-1,43):NEXT

3
PPCG में आपका स्वागत है! यह एक महान पहला सबमिशन है, और मैंने इसे पोस्ट किए गए समाधानों की सूची में जोड़ा है जबकि QBasic लैंग्वेज ऑफ द मंथ है । यदि आप चाहें, तो आप एक संक्षिप्त विवरण जोड़कर इस उत्तर को सुधार सकते हैं। यहाँ अपने समय का आनंद लें!
DLosc

2

जावास्क्रिप्ट (Node.js) , 106 105 बाइट्स

  • 1 बाइट कम करने के लिए @ केविन क्रूज़सेन को धन्यवाद
n=>[...Array(n*2+1)].map((_,i)=>" ".repeat(i?i>n?i+~n:n-i:0)+"+".repeat(i?i>n?4*n-2*i+1:i*2-1:n)).join`
`

इसे ऑनलाइन आज़माएं!

________________________________________________

दूसरा तरीका

जावास्क्रिप्ट (Node.js) , 105 100 99 98 बाइट्स

  • 1 बाइट कम करने के लिए @ केविन क्रूज़सेन को धन्यवाद
  • 1 बाइट कम करने के लिए @ovs को धन्यवाद
n=>[X="+"[r="repeat"](n),...x=[...X].map((_,i)=>" "[r](n+~i)+"+"[r](i-~i)),...x.reverse()].join`
`

इसे ऑनलाइन आज़माएं!


2
यदि आप इसके भीतर कई दृष्टिकोण रखते हैं, तो बस आपके सम्मेलन के शीर्ष पर, आपके पास सबसे छोटा सबमिशन होना चाहिए। इससे अन्य लोग आसानी से चुनौती का प्रयास कर सकते हैं, अपनी भाषा की खोज कर सकते हैं, और देख सकते हैं कि कैसे वे आपके सर्वोत्तम उत्तर की तुलना करते हैं (और स्कोरबोर्ड के लिए चुनौतियों का ठीक से काम करने के लिए आवश्यक है)
टेलर स्कॉट


2

पॉवरशेल , 55 बाइट्स

param($l)'+'*$l;1..$l+$l..1|%{" "*($l-$_)+'+'*($_*2-1)}

इसे ऑनलाइन आज़माएं!


1
महान जवाब लेकिन चरित्र +इसके बजाय होना चाहिए x। इसके अलावा, आप इसे ऑनलाइन आज़माकर अपनी प्रतिक्रिया को थोड़ा और समुदाय के अनुकूल बना सकते हैं! और आपके उत्तर की एक कड़ी जोड़ रहा है
टेलर स्कॉट

1
डेरप - विश्वास नहीं कर सकता कि मैंने ऐसा नहीं देखा। धन्यवाद!
टोर

2

जे , 29 बाइट्स

'+'(,]\(}:@|."1,.])@,]\.)@$~]

इसे ऑनलाइन आज़माएं!

स्पष्टीकरण:

'+'$~] - generates the line at the start, which is a seed for the diamond:

   '+'$~]  3
+++

]\,]\. - finds the prefixes (]\) and suffixes (]\.) of the line, making "half" the diamond 

   '+'(]\,]\.)@$~] 3
+  
++ 
+++
+++
++ 
+  

}:@|."1,.] - makes the other "half" of the diamond by reversing each line (|."1)
and dropping its last '+' (}:) and stitches the first half to it (,.])

 '+'(]\(}:@|."1,.])@,]\.)@$~] 3
  +  
 +++ 
+++++
+++++
 +++ 
  +  

, - prepends the initial line to the diamond

'+'(,]\(}:@|."1,.])@,]\.)@$~] 3
+++  
  +  
 +++ 
+++++
+++++
 +++ 
  +  

2

हास्केल , 85 82 बाइट्स

सहेजे गए 3 बाइट्स निम्मी के लिए धन्यवाद !

n!c=[1..n]>>c
f n|x<-[(n-i)!" "++(i*2-1)!"+"|i<-[1..n]]=unlines$n!"+":x++reverse x

इसे ऑनलाइन आज़माएं!


इस टिप का उपयोग करके आप दो बार उपयोग किए जाने वाले चर से छुटकारा पा सकते हैं xजो 4 बाइट बचाता है: इसे ऑनलाइन आज़माएं!
ბიმო



1

पावरशेल , 58 बाइट्स

param($n)'+'*$n;1..$n+$n..1|%{" "*($n-$_)+"+"*$_+"+"*--$_}

इसे ऑनलाइन आज़माएं!

बस एक लूप-अप और -डाउन, प्रत्येक पुनरावृत्तियों में रिक्त स्थान की उचित संख्या और फिर प्लस साइन्स की उचित संख्या का आउटपुट होता है। उबाऊ।


1

एफ # (मोनो) , 123 बाइट्स

let d n=
 let t n=String('+',n)
 let s n=t(n*2-1)
 [1..n]@[n.. -1..1]|>Seq.fold(fun a x->a+sprintf"\n%*s"(n+x-1)(s x))(t n)

इसे ऑनलाइन आज़माएं!


4
PPCG में आपका स्वागत है।
मुहम्मद सलमान

यह काम नहीं करता है। इसके अलावा, इनपुट को एसटीडीआईएन, एक फ़ाइल या एक फ़ंक्शन तर्क से लिया जाना चाहिए। हम इनपुट के रूप में पूर्व-निर्धारित चर की अनुमति नहीं देते हैं।
mbomb007

@ mbomb007 क्या आप इसे अभी अनुमोदित कर सकते हैं?
हेनरिक हैनसेन

@ हेनरिकहेनसेन: यह एक त्रुटि क्यों दे रहा है? /home/runner/code.fs(2,10): error FS0039: The value or constructor 'String' is not defined. Cannot open assembly 'code.exe': No such file or directory.
मुहम्मद सलमान

1
@ हेनरिकहेनसेन: मैंने एक संपादन का सुझाव दिया।
मुहम्मद सलमान

1

PHP 102 बाइट्स

for($r=str_pad;$i++<$a;$s.="\n".$r($r("",$i*2-1,"+",2),$a*2-1," ",2))echo"+";echo"$s\n",strrev($s);

इक जानता है कि यह इससे बहुत छोटा हो सकता है;) ग्रिट्ज़ मैंग्स


PPCG में आपका स्वागत है!
मुहम्मद सलमान

जब मैं इसे चलाने का प्रयास करता हूं तो आपका कोड एक त्रुटि उत्पन्न करता है?
मुहम्मद सलमान

आपने इसे एक अलग संपादन के रूप में क्यों सुझाया? इसका कोई मतलब नही बनता।
निसा

@StephenLeppik: उफ़, शायद मेरी ओर से एक गलती है। सूरी
मुहम्मद सलमान



1

पायथन 3 , 98 बाइट्स

def d(s):print("+"*s);t=[("+"*i).center(2*s-1)for i in range(1,2*s,2)];print("\n".join(t+t[::-1]))

इसे ऑनलाइन आज़माएं!

पठनीय संस्करण:

def diamond(size):
    print(size * "+")
    top = [("+" * i).center(2*size - 1) for i in range(1, 2*size, 2)]
    print("\n".join(top))
    print("\n".join(reversed(top)))

बहुत बेहतर :) मैंने आपकी प्रविष्टि को प्रारूपित किया ताकि यह अन्य उत्तरों की तरह दिखे। आप tio.run पर जाना चाहते हैं, यह आपके लिए आपके उत्तर को प्रारूपित करता है और दूसरों के लिए आपके कोड को पुन: प्रस्तुत करना आसान बनाता है।
JayCe

1

याबेसिक , 102 बाइट्स

एक अनाम फ़ंक्शन जो इनपुट के साथ +टैली मार्क्स और आउटपुट के साथ एक यूनेरी नंबर के रूप में इनपुट लेता है।

Input""s$
n=Len(s$)
?s$
For i=-n To n
j=Abs(i)
If i For k=2To j?" ";Next:?Mid$(s$+s$,1,2*(n-j)+1)
Next

इसे ऑनलाइन आज़माएं!

वैकल्पिक संस्करण, 117 बाइट्स

एक अनाम फ़ंक्शन उत्तर जो इनपुट को दशमलव पूर्णांक के रूप में लेता है और कंसोल को आउटपुट करता है।

Input""n
For i=1To n s$=s$+"+"Next
?s$
For i=-n To n
j=Abs(i)
If i For k=2To j?" ";Next:?Mid$(s$+s$,1,2*(n-j)+1)
Next

इसे ऑनलाइन आज़माएं!


अनाम कार्य? वे मेरे लिए पूरे कार्यक्रम की तरह दिखते हैं ...
अर्जन जोहान्स

@ YrjanJohansen इस शब्द के लिए, याबेसिक के लिए, केवल इसका मतलब है कि वे एक उपयोगकर्ता परिभाषित subदिनचर्या के रूप में लिपटे नहीं हैं , किसी भी पुस्तकालय का हिस्सा नहीं हैं और इसलिए इसे विवेकपूर्ण रूप से नहीं कहा जा सकता है जैसे बिलियन फ़ंक्शन हो सकते हैं (जैसे। Abs(x))। आप चाहें तो इस बारे में थोड़ा और यहाँ पढ़ सकते हैं ।
टेलर स्कॉट

1

जावास्क्रिप्ट (Node.js) , 183 बाइट्स

a=x=>{g='\n';r=(m,n)=>String.prototype.repeat.call(m,n);k='+';l=r(k,x)+g;c=d='';for(i=0;i++<x;c+=r(' ',x-i)+r(k,i)+r(k,i-1)+g,d+=r(' ',i-1)+r(k,x+1-i)+r(k,x-i)+g);console.log(l+c+d);}

इसे ऑनलाइन आज़माएं!

मेरे उत्तर को @JoKing के लिए धन्यवाद अपडेट किया गया


@JoKing माफ करना, मेरी गलती है, मैं सिर्फ अपना जवाब अपडेट करता हूं, धन्यवाद मेरे दोस्त।
NTCG

@ जोकिंग, आपके समय के लिए धन्यवाद
NTCG

1

एपीएल (Dyalog यूनिकोड) , 25 बाइट्स SBCS

⍪∘⊖⍨c,⍨⌽1↓[2]c←↑,\⎕←⎕/'+'

इसे ऑनलाइन आज़माएं!

स्पष्टीकरण:

⍪∘⊖⍨c,⍨⌽1↓[2]c←↑,\⎕←⎕/'+'   Full program
                       ⎕/'+'   Get input from user as N, replicate '+' N times
                    ⎕←         Print above string
                  ,\            Find all prefixes of above string, e.g. '+','++','+++' etc.
                               Mix the above into a matrix - right-pads with spaces as needed
               c               Assign above matrix to 'c' for 'corner'
          1↓[2]                 Drop the first column
                              Reverse the resulting matrix
     c,⍨                       Append 'c' to above - this gives us the top half
⍪∘⊖⍨                          Take the above, flip it about the horizontal axis,
                               and append it to itself

1↓[2]-> 0 1↓या इससे भी बेहतर: c,⍨⌽1↓[2]c←->⍉(⊖⍪1↓⊢)⍉
nn

0

जावा 8, 159 बाइट्स

n->{String r="",N="\n",t=r;for(int i=n,j,k;i-->0;t+="+",r+=i>0?N:"")for(j=-n;++j<n;r+=k<n?"+":" ")k=i+(j<0?-j:j);return t+N+r+N+new StringBuffer(r).reverse();}

निश्चित रूप से कुछ और गोल्फ हो सकता है, लेकिन यह एक शुरुआत है।

स्पष्टीकरण:

इसे ऑनलाइन आज़माएं।

n->{                    // Method with integer parameter and String return-type
  String r="",          //  Result-String, starting empty
         N="\n",        //  Temp-String for new-line to save bytes
         t=r;           //  First-line String, starting empty
  for(int i=n,j,k;i-->0 //  Loop `i` in the range (n,0]
      ;                 //    After every iteration:
       t+="+",          //     Append a "+" to the first-line String
       r+=i>0?N:"")     //     Add a new-line if this isn't the last iteration of `i` yet
    for(j=-n;++j<n;     //   Inner loop `j` in the range (-n,n]
        r+=             //     After every iteration, append the result with:
           k<n?         //      If `k` is smaller than the input `n`:
            "+"         //       Append a "+"
           :            //      Else:
            " ")        //       Append a space instead
      k=i+(j<0?-j:j);   //    Set `k` to `i` plus the absolute value of `j`
  return t+N            //  Return the first-line String plus new-line,
         +r+N           //   plus the result-String plus new-line,
         +new StringBuffer(r).reverse();}
                        //   plus the result-String again reversed

0

जाप -R , 18 16 बाइट्स

õ_ç+ êÃê1 û i+pU

कोशिश करो


व्याख्या

                     :Implicit input of integer U
õ                    :Range [1,U]
 _    Ã              :Pass each Z through a function
  ç+                 :  Repeat "+" Z times
     ê               :  Palindromise
       ê1            :Mirror
          û          :Centre pad each element to the length of the longest element
            i        :Prepend
             +pU     :  "+" repeated U times
                     :Implicitly join with newlines and output

0

अटैची , 62 बाइट्स

{"+"*_+lf+UnGrid!Bounce=>"+ "[Table[`>,1:_]|>~`'#Reverse|>@N]}

इसे ऑनलाइन आज़माएं!

एक लंबोदर जो पूर्णांक को एक तर्क के रूप में लेता है।

उदाहरण

A> n := 3
3
A> Table[`>,1:n]
 false false false
  true false false
  true  true false
A> Table[`>,1:n]|>~`'#Reverse
  true  true false
  true false false
 false false false
 false false false
  true false false
  true  true false
A> Table[`>,1:n]|>~`'#Reverse|>@N
 1 1 0
 1 0 0
 0 0 0
 0 0 0
 1 0 0
 1 1 0
A> "+ "[Table[`>,1:n]|>~`'#Reverse|>@N]
 " " " " "+"
 " " "+" "+"
 "+" "+" "+"
 "+" "+" "+"
 " " "+" "+"
 " " " " "+"
A> Bounce=>"+ "[Table[`>,1:n]|>~`'#Reverse|>@N]
 " " " " "+" " " " "
 " " "+" "+" "+" " "
 "+" "+" "+" "+" "+"
 "+" "+" "+" "+" "+"
 " " "+" "+" "+" " "
 " " " " "+" " " " "
A> UnGrid!Bounce=>"+ "[Table[`>,1:n]|>~`'#Reverse|>@N]
"  +  \n +++ \n+++++\n+++++\n +++ \n  +  "
A> lf+UnGrid!Bounce=>"+ "[Table[`>,1:n]|>~`'#Reverse|>@N]
"\n  +  \n +++ \n+++++\n+++++\n +++ \n  +  "
A> "+"*n+lf+UnGrid!Bounce=>"+ "[Table[`>,1:n]|>~`'#Reverse|>@N]
"+++\n  +  \n +++ \n+++++\n+++++\n +++ \n  +  "
A> Print[_]
+++
  +
 +++
+++++
+++++
 +++
  +
["+++\n  +  \n +++ \n+++++\n+++++\n +++ \n  +  "]
A>

0

टी-एसक्यूएल, 152 बाइट्स

हमारे IO नियमों के अनुसार , इनपुट को पूर्व-मौजूदा तालिका t के माध्यम से पूर्णांक फ़ील्ड n के साथ लिया जाता है ।

DECLARE @n INT,@ INT=1,@k INT=1SELECT @n=n FROM t
PRINT REPLICATE('+',@n)a:PRINT SPACE(@n-@)+REPLICATE('+',2*@-1)IF @=@n SET @k-=1SET @+=@k IF @>0GOTO a

मैनुअल काउंटिंग लूप, बहुत "SQL-like" नहीं। प्रारूपित:

DECLARE @n INT,@ INT=1,@k INT=1
SELECT @n=n FROM t
PRINT REPLICATE('+',@n)
a:
    PRINT SPACE(@n-@)+REPLICATE('+',2*@-1)
    IF @=@n SET @k-=1
    SET @+=@k
IF @>0 GOTO a
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.