একটি বড় স্ল্যাশ এক্স আঁকুন


21

একটি অ-নেতিবাচক পূর্ণসংখ্যা দেওয়া, Xএটি একটি বড় প্রিন্ট করুন । Xইনপুট জন্য আউটপুট 0, এবং আপনি Xবড় ইনপুট জন্য প্রসারিত প্রতিটি দিক ইনপুট সমান স্ল্যাশ যোগ করা হবে ।

পরীক্ষার মামলা

0

X

1

\ /
 X
/ \

2

\   /
 \ /
  X
 / \
/   \

...

10

\                   /
 \                 /
  \               /
   \             /
    \           /
     \         /
      \       /
       \     /
        \   /
         \ /
          X
         / \
        /   \
       /     \
      /       \
     /         \
    /           \
   /             \
  /               \
 /                 \
/                   \

বিধি

আপনি হয় আউটপুট মুদ্রণ করতে পারেন, বা একটি ফাংশন থেকে একটি স্ট্রিং বা স্ট্রিংয়ের তালিকা ফিরে আসতে পারেন। একটি ট্রেলিং করা নতুন লাইনের পাশাপাশি অতিরিক্ত অভ্যন্তরীন সাদা স্থান যা প্রদর্শিত হয় না তা অনুমোদিত।

এটি , তাই বাইট জেতে সংক্ষিপ্ত উত্তর!



6
... আমি কেবল কাঠকয়লা 1-বাইট সমাধানের জন্য অপেক্ষা করব।
ফাঁস নুন

@ ল্যাকইনুন আমি অবাক হব যদি চারকোল সহজেই Xমাঝখানে মোকাবেলা করতে পারে (কেন আমি এটি যুক্ত করেছি তার একটি অংশ) তবে কে জানে: ডি
স্টিফেন


উত্তর:


6

ক্যানভাস , 3 বাইট

╵\┼

এখানে চেষ্টা করুন!

চারকোল উত্তর আকারের অর্ধেক: ডি

╵    increment the input
 \   create a diagonal that long
  ┼  and quad-palindromize, mirroring what's required, with 1 overlap;
     This overlaps the `/` and `\`, resulting in `X`

ডাং যে সংক্ষিপ্ত।
dylnan

: ||||||| গল্ফনেসের জন্য +1
এএসসিআইআই-

এছাড়াও আমি ভাবছি যদি স্ট্যাক-ভিত্তিক ভাষাগুলি মূলত সর্বদা অন্যান্য ভাষার চেয়ে বেশি হয়?
ASCII- কেবল

@ এএসসিআইআই-কেবল জেলি
ওকেক্স

@ ওকএক্স * স্ট্যাক-ভিত্তিক / সারণি
ASCII- কেবল

22

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

PX⁺¹NX

তোমার বাজে কথা আমাকে থামছে না;)

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


2
টিআইও দেখতে খুব আকর্ষণীয় ... আপনি যখন এতে সত্যই বড় একটি সংখ্যা রেখেছেন
স্টিফেন

@ স্টেফেনস কেবল মোড়ানোর কারণে।
Okx

আমি জানি, এটি কেবল স্বজ্ঞাত যে জড়িত সমস্তগুলি বামে সারিবদ্ধ হয়ে যায় (কারণ স্থানগুলি মোড়ানো হয় না)
স্টিফেন

5 টি অক্ষর (পোস্টডেটস চ্যালেঞ্জ) কেবল ক্যানভাসের কাছাকাছি যাওয়ার জন্য
ASCII- কেবল

16

জাভাস্ক্রিপ্ট (ES6), 79 বাইট

একটি পুনরাবৃত্তি ফাংশন জি ব্যবহার করে যা গ্রিডের মধ্যে দিয়ে যায় এবং অক্ষর অনুসারে আউটপুট অক্ষর তৈরি করে।

n=>(g=x=>`/\\ X
`[~x?x-y?x+y-w&&2:x-n?1:3:4]+(~y?g(~x--?x:y--&&w):''))(y=w=n*2)

কিভাবে?

এক্স এবং y উভয় ভেরিয়েবল 2n থেকে -1 পর্যন্ত পুনরাবৃত্তি হয় যেখানে এন ইনপুট।

গ্রিডে প্রতিটি অবস্থানের জন্য (x, y) , আমরা এই অক্ষরগুলির মধ্যে একটি বেছে নিই:

  • 0: /
  • 1: \
  • 2: স্থান
  • 3: X
  • 4: নিউলাইন

নিম্নলিখিত পরীক্ষা ব্যবহার করে:

  • ~x: মিথ্যা যদি x == -1 : আমরা লাইনের শেষ প্রান্তে পৌঁছেছি।
  • x-y: মিথ্যা যদি x == y : আমরা অ্যান্টি- ডায়াগোনলে অবস্থিত।
  • x+y-w: মিথ্যা যদি x + y == ডাব্লু : আমরা ত্রিভুজটিতে অবস্থিত।
  • x-n: মিথ্যা যদি x == n : কারণ এই পরীক্ষাটি কেবলমাত্র তখনই ঘটে থাকে যখন x == y , এর অর্থ হল আমরা গ্রিডের সঠিক কেন্দ্রে অবস্থিত।

এবং নিম্নলিখিত সিদ্ধান্ত গাছ:

সিদ্ধান্ত গাছ

ডেমো


4
এটি ... জাভাস্ক্রিপ্ট? কি হয়েছে তোমার, পুরানো বন্ধু।
রবার্ট-এস

13

এমএটিএল , 16 বাইট

'\/X 'iEQXytEP+)

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

2উদাহরণ হিসাবে ইনপুট বিবেচনা করুন । স্ট্যাকটি এখানে উল্টোদিকে দেখানো হয়েছে, যেমন নিম্ন উপাদানগুলি সম্প্রতি সজ্জিত।

'\/X '  % Push this string
        %   STACK: '\/X '
iEQ     % Input a number, n. Multiply by 2, add 1: gives 2*n+1
        %   STACK: '\/X '
                   5
Xy      % Identity matrix of that size
        %   STACK: '\/X '
                   [1 0 0 0 0;
                    0 1 0 0 0;
                    0 0 1 0 0;
                    0 0 0 1 0;
                    0 0 0 0 1]
tEP     % Duplicate, multiply each entry by 2, flip vertically
        %   STACK: '\/X '
                   [1 0 0 0 0;
                    0 1 0 0 0;
                    0 0 1 0 0;
                    0 0 0 1 0;
                    0 0 0 0 1]
                   [0 0 0 0 2;
                    0 0 0 2 0;
                    0 0 2 0 0;
                    0 2 0 0 0;
                    2 0 0 0 0]
+       % Add the two matrices
        %   STACK: '\/X '
                   [1 0 0 0 2;
                    0 1 0 2 0;
                    0 0 3 0 0;
                    0 2 0 1 0;
                    2 0 0 0 1]
)       % Index into the string. Indexing is 1-based and modular, so 1 picks
        % the first character ('\'), ..., 0 picks the last (space)
        %   STACK: ['\   /';
                    ' \ / ';
                    '  X  ';
                    ' / \ ';
                    '/   \']
        % Implicit display

আমি অক্টোটাভেও অনুরূপ কিছু করতে চেয়েছিলাম, তবে আপনি আমাকে এটিকে মারধর করেছেন এবং এমএটিএল-তে এটি অক্টাভের চেয়েও খাটো, এত দুর্দান্ত কাজ!
মিচথান

@ মিছথান ধন্যবাদ! একটি অক্টাভ সংস্করণ অবশ্যই পোস্ট করার উপযুক্ত হবে। আমার ব্যর্থতা 38 বাইটে, আপনার কী?
লুইস মেন্ডো

আমি পুরো সপ্তাহান্তে এটি নিয়ে ভাবছিলাম এবং আপনি এখানে যেটি ব্যবহার করছেন তার চেয়ে কার্যকর কোনও উপায় খুঁজে পেল না ... সুতরাং সমস্ত ক্রেডিট আপনার কাছে একটি অষ্টক সংস্করণে যেতে হবে।
মিচথন

6

সি, 108 106 বাইট

a;g(n){for(int b=2*n,i=1,c=47;a+=i;b?puts(""):(i=-i,c=92),b-=2*i)printf("%*c%*c",a,b?c+45*i:88,b,b?c:10);}

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

(এমডি এক্সএফকে olf2 গল্ফিং ধন্যবাদ)

এটি দুটি অক্ষর মুদ্রণ করে (প্রথমে, c = 47যা একটি স্ল্যাশ এবং c + 45যা একটি ব্যাকস্ল্যাশ; তারপরে সেগুলি অদলবদল করা হয়) গতিশীল ক্ষেত্র প্রস্থের সাথে।

ক্ষেত্রের প্রস্থগুলি শুরু হয় 1এবং 2nপ্রতিটি পুনরাবৃত্তিতে প্রথম প্রস্থটি 1 দ্বারা বৃদ্ধি করা হয় এবং দ্বিতীয়টি 2 দ্বারা হ্রাস হয়।

যখন দ্বিতীয় ক্ষেত্রের প্রস্থ 0 হয়ে যায়, তখন এটি 'X'নিয়মিত অক্ষরের পরিবর্তে আউটপুট এবং একটি নতুন লাইন থাকে এবং বৃদ্ধি ( i) এর দিককে উল্টে দেয় । একটি নতুন লাইন অন্য সমস্ত লাইনের জন্য আলাদাভাবে মুদ্রিত ( puts(""))।


106 বাইট: a,b,i=1,c;g(n){for(b=2*n,c=47;a+=i;b?puts(""):(i=-i,c=92),b-=2*i)printf("%*c%*c",a,b?c+45*i:88,b,b?c:10);} এটি অনলাইনে চেষ্টা করুন!
এমডি এক্সএফ

ধারণার জন্য ধন্যবাদ! কোডটি দুবার কল করা যেতে পারে তা নিশ্চিত করার জন্য আমি কেবলমাত্র এর একটি অংশ ব্যবহার করেছি।
অ্যানাটলিগ

5

শর্টসি , 111 বাইট

s(x){Wx--)R" ")}j;f(x){O;j<x;j++)s(j),P92),s((x-j)*2-1),R"/\n");s(x);R"X\n");Wj--)s(j),P47),s((x-j)*2-1),R"\\\n

আমার সি উত্তর উপর ভিত্তি করে । রূপান্তর:

  • R -> printf(
  • P -> putchar(
  • W -> while(
  • O -> for(
  • স্বয়ংক্রিয়ভাবে closingোকানো বন্ধ ");}

এই জন্য ASCII কোড ব্যবহার \এবং /

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



5

সি, 168 155 150 বাইট

-5 কম্পিউটারের জন্য ধন্যবাদ

#define p printf(
s(x){while(x--)p" ");}j;f(x){for(;j<x;j++)s(j),p"\\"),s((x-j)*2-1),p"/\n");s(x);p"X\n");while(j--)s(j),p"/"),s((x-j)*2-1),p"\\\n");}

অবশ্যই গল্ফ করা যেতে পারে; আমি তাই করছি। এটি অনলাইন চেষ্টা করুন!

Ungolfed:

int space(int x)
{
    while (x--)
        putchar(' ');
}

int f(int x)
{
    for (int j = 0; j < x; j++) {
        space(j);
        printf("\\");
        space((x-j)*2-1);
        printf("/\n");
    }

    space(x);
    puts("X");

    while (j--) {
        space(j);
        putchar('/');
        space((x-j)*2-1);
        printf("\\\n");
    }
}

2
পি কে "প্রিন্টফ" এর পরিবর্তে "প্রিন্টফ" হিসাবে সংজ্ঞায়িত করে আপনি 5 টি অক্ষর হারাতে পারেন
কমপট্রোনিয়াম

3

ভি , 21 বাইট

éXÀñ>HÄÒ r\Á/YGpr/$r\

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

Hexdump:

00000000: e958 c0f1 3e48 c4d2 2072 5cc1 2f59 4770  .X..>H.. r\./YGp
00000010: 722f 2472 5c                             r/$r\

ব্যাখ্যা:

éX                      " Insert an 'X'
  Àñ                    " Arg1 times:
    >H                  "   Add a space to every line.
                        "   Conveniently, this also puts us on the first line
      Ä                 "   Duplicate this line
       Ò                "   And replace the whole line with spaces
         r\             "   Replace the first char with '\'
           Á/           "   Append a '/' char
             Y          "   Yank this line
              G         "   Move to the last line
               p        "   And paste the line we yanked
                r/      "   Replace the first character with a '/'
                  $     "   Move to the end of the line
                   r\   "   And replace the last character with a '\'

মূলত, আমাদের আছে একটি এক্স সন্নিবেশ করিয়েছি, n বার স্ল্যাশ প্রসারিত

তবে এটি এতটা সহজ নয় কারণ আমাদেরও প্রথমবারের মতো স্ল্যাশ যুক্ত করতে হবে। যদি স্ল্যাশগুলি ইতিমধ্যে সেখানে থাকে তবে আমরা স্ল্যাশগুলি প্রসারিত হিসাবে লিখতে পারি :

>HÄX2pGÙX2p

যা আমাদের 6 বাইট সংরক্ষণ করতে পারে।


3

সি #, 157 122 120 বাইট

_=d=>"".PadLeft(d)
a=>{var s=_(a)+"X\n";for(int i=0;++i<=a;)s=$@"{_(a-i)}\{_(i*2-1)}/
{s+_(a-i)}/{_(i*2-1)}\
";return s;}

অবরুদ্ধ সংস্করণ:

 Func<int, string> _ = (d) =>"".PadLeft(d);
        Func<int, string> func = a => {

            var s = _(a) + "X\n";

            for (int i = 0; ++i <= a;) {

                s = $@"{_(a - i)}\{_(i * 2 - 1)}/
{s + _(a - i)}/{_(i * 2 - 1)}\
";

            }
            return s;
        };

1
আপনি প্রথমে অন্য বেনামে ফাংশনটি সরিয়ে নিতে পারেন এবং তারপরে এটি অন্তর্ভুক্ত করতে পারেন _=d=>new string(' ',d);(চারপাশের ধনুর্বন্ধনীগুলির জন্য কোনও প্রয়োজন নেই নোট করুন d)। আপনি লুপটির চারপাশে কুঁকড়ানো বন্ধনীগুলি সরাতে পারেন। ভারব্যাটিম স্ট্রিংটি ব্যবহার করুন যাতে আপনার সমস্ত ব্যাকস্ল্যাশ থেকে পালাতে হবে না। যদি আপনি সেট করেন i=0তবে আপনি এটি করতে ++i<a+1এবং মুছে ফেলতে পারেন i++
TheLethalCoder

ভারব্যাটিম স্ট্রিংগুলির সাথে আপনার \nএকটি আসল লাইন ফিড অন্তর্ভুক্ত করার দরকার নেই যা কাজ করবে, যদিও আমি নিশ্চিত নই যে আপনি লুপের চারপাশে ব্রেসগুলি সরাতে সক্ষম হবেন কিনা, আপনাকে চেষ্টা করতে হবে।
TheLethalCoder

1
প্রয়োগের পরে TheLethalCoder প্রথম পরামর্শ , এছাড়াও আপনি প্রতিস্থাপন করতে পারেন ++i<a+1জন্য ++i<=a সম্পাদনা এছাড়াও, আপনি পরিবর্তন করে আরো 4 বাইট সংরক্ষণ Funcথেকে new string(' ',d)থেকে"".PadLeft(d)
auhmaan

পরামর্শের জন্য ধন্যবাদ, @ লেথলকোডার আমি কি এর মতো 2 টি ক্রিয়াকলাপ ঘোষণার অনুমতি দিচ্ছি, যদি আমরা এটি করতে পারি তবে কি প্রচুর সি # গল্ফিং সংক্ষিপ্ত হবে না?
লিফডওয়েভেন

1
@ স্টেফানডেলপোর্ট এ সম্পর্কে কোথাও একটি মেটা আলোচনা রয়েছে তবে এটি যেমন দাঁড়িয়েছে আমি বিশ্বাস করি যতক্ষণ আপনি ফাংশনগুলির নামটি দেখান ততক্ষণ আপনি পারবেন। এই ক্ষেত্রে _
TheLethalCoder

3

গণিত, 71 বাইট

(আংশিকভাবে জেনি_ম্যাথির 104-বাইট সমাধান দ্বারা অনুপ্রাণিত)

""<>#&/@(#"\\"+Reverse@#"/"&@IdentityMatrix[2#+1]/.{0->" ",a_+_->"X"})&

স্ট্রিংগুলির একটি তালিকা ফেরত দেয়।

ব্যাখ্যা: IdentityMatrix[2#+1]ত্রিভুজ বরাবর 1 এবং অন্য কোথাও 0 দিয়ে সঠিক আকারের একটি ম্যাট্রিক্স তৈরি করে। এরপরে, আমরা এটিকে "\\"(একটি পালিয়ে যাওয়া ব্যাকস্ল্যাশ) দ্বারা গুন করি , এটি একে অন্য এবং 0s এর সাথে ব্যাকস্ল্যাশ সহ একটি ম্যাট্রিক্স করে তোলে, যেহেতু অবশ্যই 1 বার ব্যাকস্ল্যাশ ব্যাকস্ল্যাশ হয় এবং 0 বার ব্যাকস্ল্যাশ হয় 0 আমরা "/"এটির বিপরীতে বার করতে এটি যুক্ত করি এক্স আকার। আমরা প্রায়, কাজ সম্পন্ন হয় এখনও সর্বত্র ব্যতীত 0 সেঃ এবং মধ্যম হয় "\\" + "/"। আমরা দ্বারা substituting এই দুটি জিনিষ ঠিক " "জন্য 0এবং "X"জন্য a_+_(যেমন যা দুটি জিনিস কোন সমষ্টি ম্যাচ, _+_, should ব্যতীত ম্যাথামেটিকাল নিজস্ব ভাল জন্য খুব চালাক এবং ব্যাখ্যা করে যে হিসাবে 2 বার _)। পরিশেষে, ""<>#&/@এটিকে স্ট্রিংয়ের তালিকায় পরিণত করে।


3

জাভা (ওপেনজেডিকে 8) , 135 বাইট

i->{int k=0,j,l=2*i+1;String[]s=new String[l];for(;k<l;k++)for(s[k]="",j=0;j<l;j++)s[k]+=j==k?j==i?"X":"\\":j==l-1-k?"/":" ";return s;}

ল্যাম্বডা এক্সপ্রেশন যা গ্রহণ করে এবং পূর্ণসংখ্যা করে এবং স্ট্রিংগুলির একটি অ্যারে প্রদান করে

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

Ungolfed:

i->{
    int k=0,j,l=2*i+1;                // Some variables to be used
    String[]s=new String[l];            // Return array (size 2*i+1)
    for(;k<l;k++)                       // For each array entry
        for(s[k]="",j=0;j<l;j++)        // Set each character to 
            s[k]+=j==k?j==i?"X":"\\"    // \ or X if it's the jth character of the jth row
                 :j==l-1-k?"/"          // / if it's the opposite char
                 :" ";                  // else blank
    return s;
}

3

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

DECLARE @ INT SELECT @=a FROM t DECLARE @i INT=@
WHILE @>0BEGIN PRINT SPACE(@i-@)+'\'+SPACE(2*@-1)+'/'SET @-=1 END
PRINT SPACE(@i)+'X'WHILE @<@i BEGIN SET @+=1 PRINT SPACE(@i-@)+'/'+SPACE(2*@-1)+'\'END

বিন্যাসকৃত:

DECLARE @ INT 
SELECT @=a FROM t 
DECLARE @i INT=@
WHILE @>0
    BEGIN
        PRINT SPACE(@i-@)+'\'+SPACE(2*@-1)+'/'
        SET @-=1 
    END
PRINT SPACE(@i)+'X'
WHILE @<@i 
    BEGIN 
        SET @+=1 
        PRINT SPACE(@i-@)+'/'+SPACE(2*@-1)+'\'
    END

ইনপুট কলাম মারফত একটি নামে টেবিলে টি , আমাদের নির্দেশিকা প্রতি


3

চুনি , 66 বাইট

পুনরাবৃত্তি ফাংশন।

f=->x{?X[x]||"\\#{s=' '*(2*x-1)}/
#{f[x-1].gsub /^/,' '}
/#{s}\\"}

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

ব্যাখ্যা

f=->x{                  # Start of recursive function named `f`
      ?X[x]||           # Return 'X' if x==0, otherwise the following:
"\\#{s=' '*(2x-1)}/     #  Top edge of the cross. Save no. of spaces needed
#{f[x-1]                #  Get result of f[x-1]
        .gsub /^/,' '}  #  Regex sub to left-pad every line w/ a space
/#{s}\\"                #  Bottom edge of cross (insert saved no. of spaces)

3

জেলি , 24 17 বাইট

Ḥ‘=þ`µḤ+Uị“/\x ”Y

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

কিভাবে এটা কাজ করে

Ḥ‘=þ`µḤ+Uị“/\x ”Y   main link, input a
Ḥ‘                  input doubled and incremented
   þ                Make a table: Apply  
  =                 "equals"/ to      
    `               each element in range(2a+1) cartesian multiplied with itself.
                      eg. For input 1: [1=1,1=2,1=3],[2=1,2=2,2=3],[3=1,3=2,3=3]      
     µ              on this array:
       +            add: 
      Ḥ             double of it to
        U           its reverse (changes south-east to north-west)
         ị“/\x ”    index into the string "/\x " to get the right characters
                Y   join by newlines for the final output.

-6 বাইটস @ লিকেইউন এবং অতিরিক্ত উন্নতির সাথে -1 বাইটকে ধন্যবাদ



2

ব্যাচ, 201 বাইট

@echo off
set s= /
for /l %%i in (2,1,%1)do call set s=  %%s%%
set s=\%s%
for /l %%i in (-%1,1,%1)do call:c
exit/b
:c
echo %s%
set s=%s:\ = \%
set s=%s:X =/\%
set s=%s:\/=X %
set s=%s: /=/ %

শীর্ষ রেখাটি তৈরি করে শুরু করা হয়, তারপরে প্রতিটি লাইন মুদ্রণের পরে, \ডান একটি স্থান এবং /বাম একবার স্থান একবার সরিয়ে নিয়ে যায় তা নিশ্চিত করে যে তারা Xমাঝখানে তৈরি করে।



2

রেটিনা , 74 বাইট

.+
$* X
+`^ ( *).( *)
$1\  $2/¶$&
+`¶ ( *).( *).?$
$&¶$1/  $2\
m` (\W)$
$1

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

.+
$* X

রাখুন X

+`^ ( *).( *)
$1\  $2/¶$&

এ থেকে শুরু করে Xউপরের দিকে কাজ \করে প্রতিবার বামদিকে একটি তির্যক রাখুন। এছাড়াও একটি স্থান /পর আরো দুটি স্পেস /শেষ সময় থাকে।

+`¶ ( *).( *).?$
$&¶$1/  $2\

Xনীচে কাজ করে শুরু করে /প্রতিবার বামদিকে একটি তির্যক রাখুন। এছাড়াও একটি স্থান \পর আরো দুটি স্পেস /শেষ সময় থাকে।

m` (\W)$
$1

দুটি ত্রিভুজের মধ্যে ফাঁকের সংখ্যা বিজোড় হওয়া দরকার, সুতরাং প্রতিটি লাইনের শেষ স্থানটি (মূল Xলাইন বাদে ) মুছে ফেলা হয়।


2

গণিত, 131 বাইট

(F[x_,y_]:=Table[x<>StringJoin@Table[" ",i]<>y,{i,1,#*2,2}];Column[Join[Reverse@F["\\","/"],{"X"},F["/","\\"]],Alignment->Center])&


গণিত, 104 বাইট

গ্রিড ব্যবহার করে এখানে আরেকটি পন্থা দেওয়া হল

(S=DiagonalMatrix[Table["\\",r=2#+1]];Table[S[[r+1-i,0+i]]="/",{i,r}];S[[#+1,#+1]]="X";Grid@S/. 0->" ")&

2

এপিএল (ডায়ালগ) , 25 বাইট

প্রয়োজন ⎕IO←0অনেক সিস্টেমে পূর্বনির্ধারিত।

' \/X'[(⊢+2×⌽)∘.=⍨⍳1+2×⎕]

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

' \/'[… এর ] সাথে স্ট্রিং সূচী করুন

 ইনপুট পান

 দুই দ্বারা গুণ

1+ এক যোগ কর

 অনেকগুলি পূর্ণসংখ্যার চেয়ে

∘.=⍨ সমতা সারণী (যেমন পরিচয় ম্যাট্রিক্স; এনডাব্লু-এসই তির্যক)

() এটিতে নিম্নলিখিত ট্যাসিট ফাংশনটি প্রয়োগ করুন

   যুক্তি

  + যোগ

   দুই বার

   অনুভূমিকভাবে মিরর করা আর্গুমেন্ট (যেমন NE-SW ডায়াগোনাল)


2

বাশ , 138 বাইট

for i in `seq $1;seq $[$1-1] -1 1`
{ $[a++]
printf "%*c%*s\n" `echo ' '$i $[a>$1?1:2] $[($1-i)*2]' '$[a<$1?1:2]`
}|sed 's/22/X/'|tr 12 /\\

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

সত্যিই দীর্ঘ, বাশ '\ এবং /' গরম করে

কম গল্ফড

 for i in {1..10} {9..1};{
   $[a++];                      #argument as padding, prints 1 for \ and 2 for /
   printf "%*c%*s\n" `echo ' '$i $[a>$1?1:2] $[($1-i)*2]' '$[a<$1?1:2]`;
  }|sed 's/22/X/g' | tr 12 /\\

2

পাইথন 2 , 95 84 বাইট

-10 বাইট @ ফিলিপনার্ডিবাটিস্টাকে ধন্যবাদ

f=lambda s,i='\n':i+(s and'\\'+'  '*~-s+' /'+f(s-1,i+' ')+i+'/'+'  '*~-s+' \\'or'X')

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



@ ফিলিপনার্দিবাটিস্তা অনেক ধন্যবাদ
ওভস


1

পার্ল 5, 110 + 1 = 111 বাইট

-nপতাকা ব্যবহার করে ।

$x=$_;$,="\n";push@x,$"x($x-$_)."\\".$"x(2*--$_+1)."/"while$_>0;say@x,$"x$x."x";for(reverse@x){y!\\/!/\\!;say}

1

কিউবিআইসি , 90 বাইট

~b=0|?@X`\[0,:-1|X=space$(a)┘Z=Z+X+@\`+space$((b-a)*2-1)+@/`+X+@┘`]Z=Z+space$(b)+A+_fZ

এই এককীকরণ কীভাবে কাজ করে, পাঠকের জন্য একটি অংশ হিসাবে রেখে গেছে ...

নমুনা আউটপুট:

Command line: 3
\     /
 \   / 
  \ /  
   X
  / \  
 /   \ 
/     \

1

ভিজ্যুয়াল বেসিক.নেট , 454 450 বাইট

Option Strict Off
module m
sub main(a As String())
dim v=Convert.toInt32(a(0))
for i as Integer=v to 1 step -1
for j as Object=1 to v-i
w(" ")
next
w("\")
for j as Object=1 to i*2-1
w(" ")
next
console.writeline("/")
next
console.writeline(new String(" ",v)&"X")
for i as Object=1 to v
for j as Object=1 to v-i
w(" ")
next
w("/")
for j as Object=1 to i*2-1
w(" ")
next
console.writeline("\")
next
end sub
sub w(s)
console.write(s)
end Sub
end module

নিশ্চিত না একটি func উপার্জন কিনা writelineনির্দেশ জন্য কিছু বাইট স্টিফেন এস ধন্যবাদ সংরক্ষণ করতে হবে as ...অপসারণের এছাড়াও পরিবর্তিত integerমধ্যে object শেষ সম্পাদনা প্রথমটি ফিরে পরিবর্তিত


আপনি একজন সাহসী :) আমি বিশ্বাস করি আপনি সমস্তটি মুছে ফেলতে পারবেন as Types, কারণ আপনার যদি থাকে তবে Option Strict Offভিবি.এনইটি একটি স্বল্প টাইপের ভাষার মতো কাজ করে।
স্টিফেন

বর্তমানে লিনাক্স মনোতে অস্থিরতা রয়েছে
বহুগ্লোটিরিয়াল

মনো কোনও বিকল্প স্ট্রাক্টের বিষয়ে চিন্তা করে না, বা কমপক্ষে আমার যা মনে হয় তা
বহুগ্লিয়াতীত

ওহ মনে হচ্ছিল functionগুলি ! = for loops গলফ জন্য ধন্যবাদ
বহুগ্লঘটিতআইজন

Option Strictডিফল্ট বন্ধ হয় না ? এটি কমপক্ষে ভিজ্যুয়াল স্টুডিওতে রয়েছে
স্টিফেন

1

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

F'\IN-úR.∞})Âí'Xs)˜.c»

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

ব্যাখ্যা

F                        # for N in [0...input-1] do
 '\                      # push a backslash
   IN-ú                  # prepend input-N spaces
       R                 # reverse
        .∞               # mirror
          }              # end loop
           )             # wrap stack in a list
            Â            # bifurcate
             í           # reverse each item
              'Xs        # push an "X" between the 2 lists on the stack
                 )˜      # wrap in flattened list
                   .c    # pad lines to equal length
                     »   # join on newlines

বিকল্প 22 বাইট সমাধান

F'\N·>ú'/ì})Âí'X¸«ì.c»


1

tcl, 134

proc P {x s b} {time {puts [format %[incr ::i $x]s%[expr ($::n-$::i)*2+2]s $s $b]} $::n}
P 1 \\ /
puts [format %[incr i]s X]
P -1 / \\

ডেমো

সেট nপ্রথম লাইনে করুন।

পুনরাবৃত্তির পদ্ধতির সাহায্যে আমি এটি আরও গল্ফ করতে পারি


1

আর , 75 72 বাইট

y=diag(b<-2*scan()+1);write(c(" ",'\\','/','X')[y+2*y[,b:1]+1],'',b,,'')

এই উত্তরের দ্বারা অনুপ্রাণিত , একটি অন্তর্নিহিত ম্যাট্রিক্স উত্পন্ন করে এবং এটি স্টাডাউটে লেখেন; স্টিডিন থেকে আকার পড়ে। sep=''এটিতে স্পেস অক্ষরের একটি ম্যাট্রিক্স তৈরি করতে হবে এবং খ / সি ব্যবহার করবে অন্যথায় এটিতে ফাঁকা থাকার সমস্যা রয়েছে।

diag(b)                     # generates a main diagonal of 1, rest 0
2*diag(b)[,b:1]             # the other diagonal is 2
                            # [,b:1] reverses columns
                            # [b:1,] reverses the rows; they're equivalent
diag(b)+2*diag(b)[,b:1]     # sums, so we get 1 for main diagonal
                            # 2 for other diagonal, 3 for center
diag(b)+2*diag(b)[,b:1]+1   # add 1 since R is 1-indexed
                            # the result is indices for the vector
c(' ','\\','/','X')

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

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