হীরা স্রষ্টা +


27

চ্যালেঞ্জ:

nইনপুট হিসাবে একটি পূর্ণসংখ্যা দেওয়া হয়েছে । একটি হীরা প্রদত্ত সংখ্যার যে 2x তৈরি করুন n

ইনপুট :

ইনপুটটি পূর্ণসংখ্যা nএবং 2 <n ≤ 3000।

আউটপুট:

আউটপুট একটি স্ট্রিং হবে এবং এটি ব্যবহার করে +দেখানো শুরুতে একটি অতিরিক্ত লাইন যুক্ত হীরা আকারে থাকবেn+

উদাহরণ:

ডি (3):

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

ডি (5):

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

ডি (6): 

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

বিজয়ী মানদণ্ড:

এটি তাই প্রতিটি প্রোগ্রামিং ভাষার জয়ের জন্য বাইটের মধ্যে সংক্ষিপ্ততম কোড।


1
আমরা কি nএকা হয়ে যেতে পারি?
অ্যাডাম

3
ট্যালি মার্ক+ হিসাবে ব্যবহার করছেন ?
অ্যাডাম

1
আপনি একটি পরীক্ষা কেস যেখানে যোগ করতে পারেন n?
শেগি

2
@ শেগি: নিশ্চিত না কেন। আমি এখনই এটি যোগ করব। ধন্যবাদ
মুহাম্মদ সালমান 10

উত্তর:


33

ব্রেনফাক , 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]

এটি অনলাইন চেষ্টা করুন!


কিছু গল্ফিংয়ে আমার প্রথম প্রচেষ্টা, উন্নতির জন্য কোনও পরামর্শ স্বাগত।

সম্পাদনা: কেভিন ক্রুইজসেনকে ধন্যবাদ 1 বাইট সংরক্ষিত

সম্পাদনা: বাইট গণনা সম্পর্কে ভুল বোঝাবুঝি সরানো হয়েছে

সম্পাদনা: জো কিং এবং ব্যবহারকারী 202729 এর জন্য আরও অনেকগুলি বাইট সংরক্ষণ করা হয়েছে


5
পিপিসিজিতে আপনাকে স্বাগতম! :)
শেগি

1
এছাড়াও, আপনি যদি পাইথন 2 এ পরিবর্তন করেন তবে print'\n'.join(['+'*n]+a+a[::-1])আরও 2 বাইট সংরক্ষণের জন্য প্রথম বন্ধনী ব্যবহার করা যেতে পারে। আমার কাছ থেকে যদিও +1। ভাল উত্তর। :)
কেভিন ক্রুইজসেন

1
জমাগুলি হয় পুরো প্রোগ্রাম (শিরোনাম / পাদলেখ কিছুই নয়) বা একটি ফাংশন (যা কোনও ফাংশন (বা রেফারেন্স যেমন বেনাম ফাংশনের ক্ষেত্রে যেমন lambda)) সংজ্ঞায়িত করতে পারে ) হতে পারে।
ব্যবহারকারী 202729

2
এবং 2*i+1 == i+i+1 == i-(-i-1) == i-~i,।
ব্যবহারকারী 202729

2
দুর্দান্ত প্রথম উত্তর। সাবাশ.
এলপেড্রো

8

05 এ বি 1 ই , 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»ব্যবহার ÅÉকরা অন্যটি
ম্যাজিক অক্টোপাস উরান

@ ম্যাজিক অ্যাক্টোপাস উর্ন: আমার প্রাথমিক চিন্তাটি ব্যবহার করছিল ÅÉতবে আমি এটিকে বাতিল করে দিয়েছিলাম কারণ আমি ·এটিকে কাজ করার জন্য ব্যবহার করার কথা ভাবিনি ।
Emigna

5

পাইথন 3 , 79 78 বাইট

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

এটি অনলাইন চেষ্টা করুন!

ফাংশন সম্পর্কে আমাকে জানানোর জন্য পাইথনের উত্তরটি গল্ফ করার জন্য এই টিপসটির জন্য ধন্যবাদ .center। স্ট্রিংগুলির একটি তালিকা ফেরত দেয়।


ফুটারটি কি বাইট গণনায় অন্তর্ভুক্ত নয়?
সেক্ষেত্রে

@ ম্যাক্সব আপনি যদি কোনও ফাংশন ব্যবহার করছেন, তবে সাধারণত লাইনের তালিকা হিসাবে আউটপুট ফিরিয়ে দেওয়া ঠিক হবে
জো কিং

@ জোকিং: হাম আপনি কি লিল পুনরায় পরীক্ষা করতে চান? TRY
মুহাম্মদ সালমান

@ জোকিং: এটি ব্যর্থ।
মুহাম্মদ সালমান

1
@ মুহাম্মাদসালমন ১। আপনি আমার ফাংশনটি এন = 3 এর জন্য এন = 5, 2 এর রিটার্নের বিপরীতে পরীক্ষা করছেন You হতে পারে আপনার ঠিক পরের বার আউটপুটটি দেখে নেওয়া উচিত
জো কিং

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

এটি অনলাইন চেষ্টা করুন!

@ জয়সি চূড়ান্ত কাটা সঙ্গে।

repফাংশন যেমন, কোনো বিদ্যমান পোতা অপারেটর নির্ধারিত হয় <বা ^যাতে rep("+", n)সমতূল্য "<"("+", n)যা ব্যবহার করে লেখা যেতে পারে <হিসাবে একটি পোতা অপারেটর হিসাবে "+" < nএবং সংক্ষিপ্ত "+"<n


1
25 বাইট সংরক্ষণ করুন এবং এটি একটি ফাংশন করুন।
জেসি

সুতরাং সম্পূর্ণ আপনার উত্তর :) দুর্দান্ত মূল কোড!
জেসি

এখানে এমন কিছু শ্বেতস্পেস রয়েছে যা মুছে ফেলা যায় এবং কিছুটা বাইট "+"সংরক্ষণ করে সংরক্ষণ করার পরিবর্তে সরাসরি ব্যবহার করে z! এটি এখানে চেষ্টা করে দেখুন
জিউসেপে

1
: Giuseppe এর উন্নতি উপরের @ngm @Giuseppe তারিখে, বিকল্প <জন্য rep100 অক্ষর অধীনে পেতে! এখানে
জেসি

3

কাঠকয়লা , 15 বাইট

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

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা:

G→→↙N+

ইনপুটটির +উচ্চতা এবং প্রস্থের প্রায় দ্বিগুণ একটি উল্টানো ত্রিভুজ মুদ্রণ করুন।

কার্সারটি নীচে সরান যাতে এটি প্রতিবিম্বের পরে অতিরিক্ত লাইনে অবতরণ করে।

‖M↑

ত্রিভুজটির একটি আয়না চিত্র তৈরি করুন।

×⊕ⅈ+

ইনপুটটি আবার না পড়ে এড়াতে বর্তমান কলামটি ব্যবহার করে অতিরিক্ত লাইন আঁকুন।

আউটপুট প্রতিফলিত করুন যাতে অতিরিক্ত লাইন বাম দিকে নির্দেশ করে।




3

কিউবি 64, 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
পিপিসিজিতে আপনাকে স্বাগতম! এটি একটি দুর্দান্ত প্রথম জমা, এবং আমি কিউব্যাসিক মাসের ভাষা হ'ল পোস্ট পোস্ট করা সমাধানগুলির তালিকায় এটি যুক্ত করেছি । আপনি যদি চান তবে একটি সংক্ষিপ্ত ব্যাখ্যা যোগ করে এই উত্তরটি উন্নত করতে পারেন। এখানে আপনার সময় উপভোগ করুন!
ডিএলসাস

2

জাভাস্ক্রিপ্ট (নোড.জেএস) , 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`
`

এটি অনলাইন চেষ্টা করুন!

________________________________________________

দ্বিতীয় পদ্ধতির

জাভাস্ক্রিপ্ট (নোড.জেএস) , 105 100 99 98 বাইট

  • 1 কে বাইট কমানোর জন্য কেভিন ক্রুইজসেনকে ধন্যবাদ
  • 1 ও বাইট হ্রাস করার জন্য @ ওওএসকে ধন্যবাদ
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
পিপিসিজিতে আপনাকে স্বাগতম।
মুহাম্মদ সালমান

এটি কাজ করে না। এছাড়াও, ইনপুটটি STDIN, কোনও ফাইল বা কোনও ফাংশন যুক্তি থেকে নেওয়া উচিত। আমরা পূর্বনির্ধারিত ভেরিয়েবলগুলিকে ইনপুট হিসাবে অনুমতি দিই না।
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

পিএইচপি 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);

Ik জানি এটি এর থেকে অনেক ছোট হতে পারে;) গ্রিটিজ ম্যাঙ্গাস


পিপিসিজিতে আপনাকে স্বাগতম!
মুহাম্মদ সালমান

আপনার কোডটি চালানোর চেষ্টা করার সময় কোনও ত্রুটি ঘটেছে বলে মনে হচ্ছে?
মুহাম্মদ সালমান

আপনি কেন এটিকে পৃথক সম্পাদনা হিসাবে পরামর্শ দিয়েছেন? এটা আমার বুঝে আসেনা.
নিসা

@ স্টেফেনলেপপিক: ওফ, সম্ভবত আমার পক্ষ থেকে একটি ভুল। সূর্য
মুহাম্মদ সালমান



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)))

আরও ভাল :) আমি আপনার এন্ট্রিটি ফর্ম্যাট করেছি যাতে এটি অন্যান্য উত্তরগুলির মতো লাগে। আপনি টিও.রুনে যেতে চান এটি আপনার জন্য আপনার উত্তরটি ফর্ম্যাট করে এবং অন্যদের পক্ষে আপনার কোড পুনরুত্পাদন করা সহজ করে।
জেসি

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

এটি অনলাইন চেষ্টা করুন!


বেনামে ফাংশন? তারা আমার কাছে পুরো প্রোগ্রামগুলির মতো দেখতে ...
janrjan জোহানসেন

@ আরজানজোহানসেন এই শব্দটি ইয়াবাসিকের জন্য কেবলমাত্র তারা ব্যবহারকারীর সংজ্ঞায়িত subরুটিন হিসাবে আবৃত নয়, কোনও লাইব্রেরির অংশ নয় এবং এইভাবে বিল্টিন ফাংশনগুলির মতো বিচ্ছিন্নভাবে বলা যায় না (যেমন Abs(x)))। আপনি একটি বিট এই সম্বন্ধে আরও পড়তে পারেন এখানে যদি আপনি চান।
টেলর স্কট

1

জাভাস্ক্রিপ্ট (নোড.জেএস) , 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);}

এটি অনলাইন চেষ্টা করুন!

আমার উত্তর আপডেট করেছেন @ জোকিং


@ জোকিং দুঃখিত, আমার ভুল, আমি কেবল আমার উত্তরটি আপডেট করছি, আমার বন্ধুকে ধন্যবাদ।
এনটিসিজি 15'18

@ জোকিং, আপনার সময়ের জন্য আপনাকে ধন্যবাদ
এনটিসিজি

1

এপিএল (ডায়ালগ ইউনিকোড) , 25 বাইট এসবিসিএস

⍪∘⊖⍨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↓⊢)⍉
এনজিএন 11:37

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 বাইট

আমাদের আইও নিয়ম অনুযায়ী ইনপুট পূর্বে বিদ্যমান টেবিল টি এর মাধ্যমে পূর্ণসংখ্যার ক্ষেত্র এন দিয়ে নেওয়া হয়

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

ম্যানুয়াল গণনা লুপ, খুব "এসকিউএল-মত" নয়। বিন্যাসকৃত:

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