তারার তারা তৈরি


17

ভূমিকা

ধারণাটি হ'ল *একটি নির্দিষ্ট মাত্রায় অ্যাসিআই-আর্ট তারকা প্রদর্শনের জন্য তারকাচিহ্ন (স্টার) ব্যবহার করুন । মাত্রাটি 1 এর চেয়ে বড় বা সমান একটি ইনপুট সংখ্যা1 যা তারার উপরের পয়েন্টের লাইনে উচ্চতা নির্দিষ্ট করে। চিত্রের দৃষ্টিকোণ থেকে আরও বড় আকারের আরও বড় আকারের ছয়টি পয়েন্টযুক্ত তারা হ'ল এখানে তারা।

সমস্ত ক্ষেত্রে তারার ascii-art প্রতিনিধিত্ব দুটি ত্রিভুজ হিসাবে প্রদর্শিত হবে যা নিম্নলিখিত উদাহরণগুলিতে দেখানো হয়েছে ওভারল্যাপ করে।

স্থিরমাপ

নিম্নলিখিত চিত্র এবং ডেটা সারণী তারার প্রথম সাত মাপের বৈশিষ্ট্যগুলি বর্ণনা করে। পরামিতি প্রত্যেকটি হিসাবে একটি গাণিতিক অগ্রগতি বৃদ্ধি N বেড়ে যায়, ব্যতীত N=1 ভিন্ন

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন

উদাহরণ

1 এর ইনপুট (অধঃপতিত কেস) এর জন্য প্রোগ্রামের আউটপুট নিম্নরূপ হওয়া উচিত:

  *
*****
*****
  *

2 এর ইনপুট:

    *
   ***
*********
 *******
*********
   ***
    *

(3)

       *
      ***
     *****
***************
 *************          
  ***********
 *************
***************
     *****
      ***
       *

(5)

             *
            ***
           *****
          *******
         *********
***************************
 *************************
  ***********************
   *********************
    *******************
   *********************
  ***********************
 *************************
***************************
         *********
          *******
           *****
            ***
             *

চ্যালেঞ্জ

আপনার কাজটি এমন একটি ফাংশন বা প্রোগ্রাম তৈরি করা যা এন নম্বরটিকে ইনপুট হিসাবে গ্রহণ করবে এবং তারপরে যথাযথ অক্ষর এবং চরিত্রটি ব্যবহার করে উপযুক্ত আকারের তারকা আউটপুট দেবে *

  • আপনি ধরে নিতে পারেন যে ইনপুট মানটি সর্বদা একটি ধনাত্মক পূর্ণসংখ্যার হয়।
  • আউটপুট লাইনে হোয়াইটস্পেস অনুসরণ করা ঠিক আছে।
  • স্টার আর্ট আউটপুট উত্পাদন করতে কোনও N ইনপুটটির জন্য প্রোগ্রাম অ্যালগরিদম যথেষ্ট সাধারণ হওয়া উচিত । প্রদর্শিত আউটপুট আকারের কারণে ব্যবহারিক সীমাবদ্ধতা অবশ্যই বিদ্যমান।
  • আউটপুট STDOUT এ মুদ্রণ করা উচিত।
  • স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
  • এটি তাই সাধারণ গল্ফিংয়ের সমস্ত নিয়ম প্রয়োগ হয়।

স্কোরিং

এটি তাই সংক্ষিপ্ত সংখ্যক বাইটের কোড সহ জয়!


5
আপনি এটিও বলেছেন যে এটি কোনও ফাংশন হতে পারে তবে এটি অবশ্যই "স্টুডুটে মুদ্রণ করুন"। এটা কি ইচ্ছাকৃত?
পোস্ট রক গারফ হান্টার

5
হ্যাঁ, একটি সাধারণ নির্মাণের নিয়ম দুর্দান্ত হবে ... উদাহরণস্বরূপ আমি
এনপি

7
অনুগ্রহ করে বলবেন না যে "তারা তৈরির জন্য অ্যালগরিদম প্রোগ্রামিং চ্যালেঞ্জের অংশ" " এএসসিআইআই আর্ট চ্যালেঞ্জটি করার সময় এটি বেশিরভাগ গল্ফাররা উপভোগ করেন না এবং এটি স্পেসিফায়ারদের দায়িত্ব এমন কোনও কিছুকে বন্ধ করার চেষ্টা বলে মনে হচ্ছে। এটি বলেছিল, আমি অবাক হয়েছি যে মানুষ এখানে নির্মাণ সম্পর্কে অস্পষ্ট; চ্যালেঞ্জ বলার মতো এটি দুটি ত্রিভুজকে উপচে ফেলেছে। এটি কি ত্রিভুজগুলির আকার এবং অফসেট স্পষ্টভাবে বলতে সহায়তা করবে?
xnor

9
@ টিমপিডেরিক এন = 1 আলাদা হওয়ার বিষয়ে ভাল ধারণা। আমি একটি নোট রেখেছি যাতে সমাধানকারীরা এটি মিস করবেন না। আমি মনে করি যদিও এই বিশেষ ক্ষেত্রেটি না ছাড়াই চ্যালেঞ্জ আরও ভাল হবে।
xnor

4
@ এক্সনর: যেহেতু এন = 1 আলাদা ছিল, আমি কোনও সাধারণ নিয়ম অনুমান করতে পারি না ... এবং আইএমও নিয়মটি সবসময় এএসসিআইআই আর্টের জন্য নির্দিষ্ট করা উচিত, অন্যথায় আমি সংজ্ঞায়নের সীমার বাইরে যা চাই তা মুদ্রণ করার অনুমতি পাচ্ছি otherwise
উদাহরণস্বরূপ

উত্তর:


7

05 এ বি 1 ই , 21 বাইট

3*s≠-L·<sÅ0«Âø€à'*×.C

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

ব্যাখ্যা

3*                     # multiply input by 3
  s≠-                  # subtract 1 if the input isn't 1
     L                 # push range [1 ... (3*n-(n!=1))]
      ·<               # multiply by 2 and subtract 1 to get odd numbers
        sÅ0«           # append n zeroes
            Âø         # zip with a reversed copy
              ۈ       # get the largest number in each pair
                '*×    # repeat "*" for each number in the list
                   .C  # format centered

1
আপনার আউটপুট তারার সঠিক দেখাচ্ছে।
মাইকেল কারাস

1
আমি 3*s≠-L·<পছন্দ মতো 6*s≠·-ÅÉবা ≠3/-6*ÅÉপ্রচুর বিকল্পের সন্ধান করতে পারি , তবে দুর্ভাগ্যক্রমে কোনওটিই কম নয় .. বরাবরের মতো দুর্দান্ত উত্তর! :)
কেভিন ক্রুইজসেন

xs3*<ŸRsLì'*×.º.C.∊19 :) এর জন্য। আমি মিথ্যা বললাম, এটি ১ টির জন্য কাজ করে না it এটি অনুপ্রেরণার জন্য রেখে দেওয়া।
যাদু অক্টোপাস উরন

7

Haskell, , 114 বাইট

একটি ফাংশন তৈরি করে gযা একটি সংখ্যা নেয় এবং একটি IOমোনাড তৈরি করে যা স্টারটিকে STDOUT এ মুদ্রণ করে। আমি মনে করি এটি ঠিক আছে।

f=replicate
a%b=mapM_(\n->putStrLn$f(a-n)' '++f(2*n-3)'*')$zipWith max<*>reverse$[2..a]++f b 0
g 1=4%1
g a=(3*a)%a

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

ব্যাখ্যা

প্রথমে ল্যাম্বডা সম্পর্কে কথা বলা যাক।

\n->putStrLn$f(a-n)' '++f(2*n-1)'*'

nতারকা হিসাবে আঁকতে এটি একটি সংখ্যা নেয় । আমরা বহু তারার দ্বিগুণ প্রিন্ট করি এবং তারপরে আরও 1 টি এবং চিত্রের আকারের ডানদিকে প্যাড করি। আমরা এটিকে ডানদিকে প্যাড করিaতারার লাইনকে কেন্দ্র করতে ফাঁকা জায়গা দিয়ে । আমরা প্রতিটি লাইন আঁকতে এই ল্যাম্বদা ব্যবহার করতে পারি।

এই ল্যাম্বদা থেকে আমরা তৈরি করি (%)(%)করছেন দিয়ে শুরুmapM_কোনও প্রোফাইলকে আকারে পরিণত করতে আমাদের ল্যাম্বদা ।

এখন আমরা কেবল তারার জন্য প্রোফাইলের একটি তালিকা তৈরি করা দরকার। আমরা প্রথমে একটি ত্রিভুজ তৈরি করে এটি করতে পারি [1..a], তারপরে কয়েকটি জিরো দিয়ে প্যাডিং করব++replicate b 0 । আমরা যদি ত্রিভুজটির প্রোফাইল গ্রহণ করি এবং এটিকে বিপরীত করি আমরা তারার অন্য অর্ধেকটি পাই। এগুলি আরোপিত করার জন্য আমরা কেবলমাত্র একটি নতুন প্রোফাইল তৈরি করি যেখানে প্রতিটি এন্ট্রি দুটি ত্রিভুজগুলির সর্বাধিক। এই zipWith max

এরপরে আমরা একে দুটি উপায়ে কল করি: 3%1ইনপুট 1এবং সহ(3*a-1)%a অন্যথায়।

এখান থেকে আমরা কিছু বাইট শেভ করার জন্য কিছু মান দিয়ে কিছুটা বিড়বিড় করে ফেলি। যেহেতু 3*a-1বরং দীর্ঘ হয় আমরা আমাদের অন্যান্য কিছু মান 1 টি দিয়ে অফসেট করি যাতে সমস্ত কিছু বাতিল হয়ে যায় এবং এর 3*aপরিবর্তে আমরা উদ্দেশ্যমূলক আচরণটি পাই । যথা আমরা আমাদের তালিকাটি এর 2পরিবর্তে শুরু করি 1এবং 2*n-3পরিবর্তে করি2*n-1

বিকল্প সংস্করণ, 114 বাইট

এটি এক বিন্দু মুক্ত ফাংশন তৈরি করে (%)<*>min 2

f=replicate
a%b=mapM_(\n->putStrLn$f(3*a-n)' '++f(2*(n-b)+1)'*')$zipWith max<*>reverse$[b..3*a]++f a 0
(%)<*>min 2

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

N>1

f=replicate
g a=mapM_(\n->putStrLn$f(3*a-n)' '++f(2*n-3)'*')$zipWith max<*>reverse$[2..3*a]++f a 0

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

মতো সমস্ত কেস পরিচালনা করেN=1

f=replicate
g a=mapM_(\n->putStrLn$f(3*a-n)' '++f(2*n-1)'*')$zipWith max<*>reverse$[1..3*a]++f a 0

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


আপনার আউটপুট এখন দুর্দান্ত দেখাচ্ছে।
মাইকেল কারাস

6

আর , 125 107 101 বাইট

function(n,S=3*n+!n-1,P=pmax(I<-c(2:S*2-3,!1:n),rev(I)),`~`=strrep)write(paste0(' '~S-1-P/2,'*'~P),1)

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

  • -২৪ জিউসেপিকে ধন্যবাদ

পূর্ববর্তী (পৃথক) পদ্ধতির:

আর , 150 148 136 135 130 128 বাইট

function(n,G=n<2,K=4*n-1+G)for(i in 1:K-1)cat(`[<-`(rep(' ',W<-3*n-2+G),1+W+c(-i:i*(i<K-n),-(j=K-i-1):j*(i>=n)),'*'),sep='','
')

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

  • -14 কিরিল এলকে ধন্যবাদ
  • -1 @ t-clausen.dk ধন্যবাদ
  • -7 জিউজ্পে ধন্যবাদ

হ্যাঁ, আমি সেই পুনরাবৃত্তি এস [] = অ্যাসাইনমেন্টগুলিও পছন্দ করি না এবং এই কাজের
ক্যারিল এল।

দুর্দান্ত! আমি এরকম কিছু নিয়ে ভাবছিলাম ... তবে আমি রাতের খাবার
খাচ্ছিলাম

দেখে মনে হচ্ছে আপনি একটি বাইট সংরক্ষণ করতে পারেন: i> n-1 i> = n
t-clausen.dk

@ t-clausen.dk: হ্যাঁ, ধন্যবাদ!
digEmAll

1
নতুন সংস্করণে 117 বাইট
জিউসেপ

5

পাইথন 2 , 101 99 97 বাইট

n=input()
x=2*(n>1)
for i in range(1,8*n,2):print('*'*[i,8*n-i-x][i+x>n*6or i/n/2%2]).center(6*n)

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

-২ বাইট, লিনকে ধন্যবাদ


আমি যুক্তিসঙ্গতভাবে নিশ্চিত যে আপনার নির্বাচক অভিব্যক্তিতে পেরেনগুলির প্রয়োজন নেই, সুতরাং i+x>n*6orদুটি বাইট সংরক্ষণ করুন।
লিন

@ লিন ধন্যবাদ :)
টিফিল্ড

এমনকি আপনি যেতে পারেন i+x>~i/n/2%2*6*nবা ভালো কিছু i+x>3*n*(~i/n&2)(উভয় 96 বাইট।)
লিন

5

জাভাস্ক্রিপ্ট (ভি 8) ,  101  108 বাইট

সম্পাদনা করুন: +7 বাইটগুলি STDOUT এ মুদ্রণ করতে

n=>print((k=3*n+!~-n,g=y=>++y<k+n?`
`.padEnd(w=k-Math.max(y>n&&n-y+k,y<k&&y)).padEnd(2*k+~w,'*')+g(y):'')``)

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

মন্তব্য করা (ছাড়া print)

n => (                    // n = input
  k =                     // k is half the maximum width of the star + 1.5
    3 * n + !~-n,         // k = 3n if n > 1 or 4 if n = 1
  g = y =>                // g = recursive function taking y
    ++y < k + n ?         //   increment y; if y is less than k + n:
      `\n`                //     append a line feed
      .padEnd(            //     append w - 1 leading spaces:
        w =               //       where w is defined as
          k -             //       k minus
          Math.max(       //       the maximum of:
            y > n         //         - true (coerced to 1) if y > n
            && n - y + k, //           or n - y + k otherwise (bottom triangle)
            y < k &&      //         - true (coerced to 1) if y < k
            y             //           or y otherwise (top triangle)
          )               //       end of Math.max()
      )                   //     end of padEnd()
      .padEnd(            //     append 2 * (k - w) - 1 stars
        2 * k + ~w,       //       by padding to 2 * k - w - 1
        '*'               // 
      ) +                 //     end of padEnd() 
      g(y)                //     append the result of a recursive call
    :                     //   else:
      ''                  //     stop recursion
)``                       // initial call to g with y = [''] (zero-ish)

চ্যালেঞ্জটি কেবলমাত্র শীর্ষে আসার জন্য আপনার আউটপুটটি সরাসরি কনসোলে মুদ্রিত হওয়া দরকার। এটি প্রযুক্তিগতভাবে সেই প্রয়োজনীয়তা পূরণ করে না।
পোস্ট রক গারফ হান্টার

@ শ্রুতচিলিজম ও'জাইক আমাকে জানানোর জন্য ধন্যবাদ এটি এখন 'স্থির'।
আর্নৌল্ড

3

জেলি , 21 বাইট

×3’+ỊR;Ṭ»Ṛ$”*ẋz⁶ṚZŒBY

একটি সম্পূর্ণ প্রোগ্রামটি ইতিবাচক পূর্ণসংখ্যাকে গ্রহণ করে যা STDOUT- এ প্রিন্ট করে।

এটি অনলাইন চেষ্টা করুন! অথবা একটি পরীক্ষা-স্যুট দেখুন

কিভাবে?

×3’+ỊR;Ṭ»Ṛ$”*ẋz⁶ṚZŒBY - Main Link: integer, n   e.g. 3
 3                    - three                        3
×                     - multiply (n by)              9
  ’                   - decrement                    8
    Ị                 - insignificant (abs(n)<=1)?   0
   +                  - add                          8
     R                - range                        [1,2,3,4,5,6,7,8]
       Ṭ              - un-truth (n)                 [0,0,1]
      ;               - concatenate                  [1,2,3,4,5,6,7,8,0,0,1]
          $           - last two links as a monad:
         Ṛ            -   reverse                    [1,0,0,8,7,6,5,4,3,2,1]
        »             -   maximum (vectorises)       [1,2,3,8,7,6,7,8,3,2,1]
           ”*         - an asterisk character        '*' 
             ẋ        - repeat (vectorises)          ["*","**",...]
               ⁶      - a space character            ' '
              z       - transpose with filler        ["***********"," ********* ",...]
                Ṛ     - reverse                      ["   *   *   ","   ** **   ",...]
                 Z    - transpose                    ["       *","      **",...]
                  ŒB  - bounce (vectorises)          ["       *       ","      ***      ",...]
                    Y - join with newline characters "       *       \n      ***      \n..."
                      - implicit print


2

জেলি , 21 বাইট

×’»ɗ3”*xⱮz⁶ɓ⁶x;»Ṛ$ŒBY

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

একটি মোনাডিক লিঙ্কটি একটি একক পূর্ণসংখ্যাকে তার বাম আর্গুমেন্ট হিসাবে গ্রহণ করে এবং তার আউটপুট হিসাবে একটি নতুন লাইন-বিচ্ছিন্ন জেলি স্ট্রিংকে তারের সাথে ফিরিয়ে দেয়। যখন একটি পূর্ণ প্রোগ্রাম হিসাবে চালিত হয় স্পষ্টভাবে স্টারটি STDOUT এ মুদ্রণ করে।

ব্যাখ্যা

   ɗ3                 | Last three links as a dyad with 3 as right argument:
×                     |   Multiply (by 3)
 ’                    |   Decrease by 1
  »                   |   Maximum of this (and 3)
     ”*xⱮ             | An implicit range from 1 to this many asterisks
         z⁶           | Zip with space as filler
           ɓ          | Start a new dyadic chain with the input as left argument and the list of asterisks as right argument
            ⁶x        | Input many spaces
              ;       | Concatenated to the asterisk list
                 $    | Last two links as a monad:
               »Ṛ     |   Maximum of this list and its reverse
                  ŒB  | Bounce each list (i.e. mirror it without duplicating the middle entry)
                    Y | Join with newlines

1
×3’»3সমান দৈর্ঘ্য though _ ^
লিন

1
@ লিন এই মুহুর্তে আমি করেছি যে আমি ভেবেছিলাম যে আমি একাধিক লিঙ্কগুলিকে মার্জ করার জন্য আরও একটি দ্রুত ব্যবহার করব, এবং এর অর্থ হ'ল আমি সর্বোচ্চ 4 এর মধ্যে এটি করতে পারব। যাইহোক, একবার আমি ɓএটি ব্যবহার করার সিদ্ধান্ত নিয়েছি তাতে কিছু আসে যায় না তবে আমি তা রেখেছি কারণ আমি এখনও এটি পছন্দ করেছি!
নিক কেনেডি

2

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

G↙θ←⁺⊗θ¬⊖θ↑⊗θ↘⊕θ*‖O¬C⁰¬⊖θ

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

G↙θ←⁺⊗θ¬⊖θ↑⊗θ↘⊕θ*

তারার উপরের ডান প্রান্তিকে উপস্থাপন করে একটি অনিয়মিত পেন্টাগন আঁকুন, তবে সারিটিকে 1একটি অতিরিক্ত কলামকে আরও প্রশস্ত করতে বিশেষ কেসিং করুন ।

‖O¬

তারা সম্পূর্ণ করতে প্রতিফলিত করুন।

C⁰¬⊖θ

1অতিরিক্ত সারি লম্বা করার জন্য তারা তৈরি করতে আরও বিশেষ-কেসিং ।

বিকল্প সমাধান, এছাড়াও 25 বাইট:

∧¬⊖θ*G↗↓⊖׳N*‖O‖OO↓∧⊖θ⊖⊗θ

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

∧¬⊖θ*

*ক্ষেত্রে অতিরিক্ত একটি মুদ্রণ করুন 1

G↗↓⊖׳N*

উপযুক্ত আকারের ত্রিভুজটির বাম অর্ধেক আঁকুন।

‖O

ত্রিভুজটি সম্পূর্ণ করতে প্রতিফলিত করুন।

‖OO↓∧⊖θ⊖⊗θ

এটিকে তার প্রতিবিম্ব দিয়ে ওভারল্যাপ করুন, কেবলমাত্র তার 1ক্ষেত্রে এটি প্রতিফলিত করে।

এর জন্য বিশেষ-কেসিং ছাড়াই 14 বাইট 1:

G<⊖׳N*‖OO↑⊖⊗θ

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

G<⊖׳N*

উপযুক্ত আকারের একটি ত্রিভুজ আঁকুন।

‖OO↑⊖⊗θ

এর প্রতিবিম্ব দিয়ে এটি ওভারল্যাপ করুন।


2

পার্ল 6 , 74 বাইট

{$_ Z~|[R,] $_}o{.&{|((' 'x--$+$_*3~'*'x$++*2+1)xx$_*3-($_>1)),|($ xx$_)}}

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

আক্ষরিকভাবে সঠিক অনুপাত সহ একটি ত্রিভুজ তৈরি করে এবং স্ট্রিং বা অপারেটর ( ~|) ব্যবহার করে এটি একটি উল্টাপাল্টিক অনুলিপি দিয়ে ওভারল্যাপ করে । একটি শীর্ষস্থানীয় এবং অনুসরণযোগ্য রেখার সাদা স্থান সহ লাইনের তালিকা হিসাবে আউটপুট

ব্যাখ্যা:

                {.&{                                                     }  # Anonymous code block
                      (                        )xx$_*3-($_>1)   # Repeat n*3-(n!=1) times
                       ' 'x--$+$_*3      # With a decreasing indentation
                                   ~'*'x$++*2+1  # Append an increasing triangle
                                       # This creates the triangle
                                                            ,|($ xx$_)  # And add some padding lines
{             }o   # Pass the triangle to the combining function
    Z~|            # Zip string bitwise or
 $_                # The list
       [R,] $_     # With its reverse

2

জে , 53 50 বাইট

' *'{~[:(+.|.),.@#&0,~[:(|.,}.)"1*@<:>:/~@i.@-~3*]

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

ungolfed

' *' {~ [: (+. |.) ,.@#&0 ,~ [: (|. , }.)"1 *@<: >:/~@i.@-~ 3 * ]

কিভাবে

ফাংশন >:হিসাবে (বৃহত্তর বা সমান) ব্যবহার করে অর্ধেক ত্রিভুজটি তৈরি করতে একটি ফাংশন সারণী (তৃতীয় গ্রেডের বারের সারণির মতো) ব্যবহার করুন । তারপরে প্রতিটি সারিতে বিপরীত করুন, শেষ কলামটি কেটে নিন এবং পুরো ত্রিভুজটি পেতে (তবে 1 এবং 0 দিয়ে তৈরি) পেতে উভয় পক্ষকে এক সাথে সেলাই করুন। nনীচে সারি জিরো যুক্ত করুন । অবশেষে পুরো জিনিসটি বিপরীত করুন, এবং এটি বুলেয়ান ব্যবহার করে বা +.ফলাফল পেতে মূলতে ওভারলে দিন । তারপরে 1 টি চালু করুন* 0 টি স্পেসে পরিণত করুন।


নিস! এখানে আমার সমাধান - একই দৈর্ঘ্য, ভিন্ন পদ্ধতির: এটি অনলাইনে চেষ্টা করুন!
গ্যালেন ইভানভ

1
ধন্যবাদ। এটি নিশ্চিতভাবে অনুভব করে যে এটি আরও গল্ফ করা যেতে পারে তবে আমি কয়েক মুঠো অন্যান্য পদ্ধতির চেষ্টা করেছি এবং এটি করতে সক্ষম হইনি।
জোনাহ

2

টি-এসকিউএল, 194 বাইট

@ ইনপুট মান হয়

@c শীর্ষ ত্রিভুজটির প্রস্থ পরিচালনা করে

@d প্রস্থ নীচের ত্রিভুজ পরিচালনা করে

@eহয় আউটপুট থাকে @cবা@d - এটি কয়েক বাইট সংরক্ষণ করে

@fইনপুট হিসাবে 1 এর বিশেষ কেস পরিচালনা করে। @c*@=3কখন ব্যবহার করবেন তা নির্ধারণ করে @f। লেখার চেয়ে কম 5 বাইট@c=3and @=1

DECLARE @ INT=8

,@c INT=1,@e INT=1,@d INT,@f INT=0SET @d=@*8-3r:PRINT
space(@*3-@e/2+@f/2)+replicate('*',@e-@f)SELECT
@c=nullif(@c,@*6-3)+2,@f=iif(@c*@=3,2,0),@d-=2-@f,@e=iif(@c>@d
or @c/2<@,@c,@d)IF @d>0goto r

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


1

Japt -R , 25 বাইট

এর জন্য +5 বাইট n=1: \

õ cUon3*U-´UÎ)®ç* êÃê!U û

চেষ্টা করে দেখুন

õ cUon3*U-´UÎ)®ç* êÃê!U û     :Implicit input of integer U
õ                             :Range [1,U]
  c                           :Concatenate
   Uo                         :  Range [0,U)
     n                        :  Subtract each from
      3*U-                    :    Multiply U by 3 and subtract
          ´U                  :      Decrement U
            Î                 :      Get sign
             )                :End concat
              ®               :Map each Z
               ç*             :  Repeat "*" Z times
                  ê           :  Palindromise
                   Ã          :End map
                    ê!U       :If decremented U is 0, append reverse, else, palindromise
                        û     :Centre pad each line with spaces to the length of the longest
                              :Implicitly join with newlines and output
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.