วาดลูกศรที่กำลังขยาย


25

ความท้าทายนี้เกี่ยวกับการพิมพ์ชุดของลูกศรศิลปะ ASCII ที่กำลังเติบโต ฉันจะอธิบายรูปแบบในคำพูด แต่มันอาจจะง่ายกว่าที่จะดูว่าการเริ่มต้นของซีรี่ส์นี้เป็นอย่างไร:

>
<
->
<-
-->
<--
--->
<---
---->
<----
----->
<-----
------>
<------
...

ลูกศรที่มีความยาว n มีหัวลูกศร ( <หรือ>) และn-1ขีดกลาง ( -) ลูกศรที่หันเข้าหาด้านขวามีขีดกลางก่อนจากนั้น a >. ลูกศรหันซ้ายเริ่มต้นด้วย<และตามด้วยเครื่องหมายขีดกลาง ชุดประกอบด้วยnลูกศรหันไปทางความยาวขวาตามด้วยลูกศรหันหน้าไปทางซ้าย n ความยาวโดยมี n ตั้งแต่ 1 ถึงอินฟินิตี้

ในการทำสิ่งที่ท้าทายให้เขียนโปรแกรมหรือฟังก์ชั่นที่รับหนึ่งอินพุตเต็มจำนวนi >= 1และส่งออกลูกiศรแรก ลูกศรเป็นรายบุคคลไม่ใช่คู่ซ้ายขวาดังนั้นi=3คุณควรส่งออก:

>
<
->

คุณสามารถส่งคืนรายการสตริงหรือพิมพ์ทีละรายการ หากการพิมพ์ลูกศรจะต้องคั่นด้วยตัวคั่นบางตัวที่สอดคล้องกันซึ่งไม่จำเป็นต้องขึ้นบรรทัดใหม่ตามตัวอย่าง

นี่คือซึ่งมีจำนวนน้อยที่สุดที่จะชนะ


2
ที่เกี่ยวข้อง
AdmBorkBork

เราสามารถมีช่องว่างก่อน / หลังแต่ละบรรทัดได้หรือไม่?
Olivier Grégoire

@ OlivierGrégoireใช่ช่องว่างต่อท้ายไม่เป็นไร
Pavel

และมุ่งหน้าไปที่ช่องว่าง?
Olivier Grégoire

@ OlivierGrégoireใช่แล้วไม่เป็นไร
Pavel

คำตอบ:


9

ฉันไม่รู้จัก Canvas ใด ๆ แต่เป็นรูปวาดลูกศรที่ฉันเห็นหรือไม่ ค่อนข้างดูเหมือนมัน!
Pavel

2
คือ "ย้อนกลับในแนวนอน" ในตัว (เช่นการสลับ>& <) น่าเสียดายที่ไม่มีลูกศรในตัว: p
dzaima

8

R , 69 ไบต์

for(i in 1:scan()-1)cat('<'[i%%2],rep('-',i/2),'>'[!i%%2],'
',sep='')

ลองออนไลน์!

  • -5 ไบต์ขอบคุณ @Giuseppe
  • -3 ไบต์ขอบคุณ @Robert S.

strrepรวมอาร์กิวเมนต์ที่สองเข้าด้วยกันintegerเพื่อให้คุณสามารถใช้/แทน%/%
Giuseppe

คุณสามารถกำจัดaทั้งหมดโดยการทำดัชนี0...(n-1)แทน: ลองออนไลน์!
จูเซปเป้

ฉันงี่เง่า ... ขอบคุณ! : D
digEmAll

@Giuseppe: ฉันเพิ่งสังเกตเห็นคำถามที่ถูกลบของ Robert S. ฉันสามารถใช้ตัวแทนแทน strrep และประหยัด 3 ไบต์ ... (facepalm)
digEmAll

8

Java (JDK) , 81 ไบต์

n->{for(int i=0;i<n;)System.out.printf(i%2<1?"<%s%n":"%s>%n","-".repeat(i++/2));}

ลองออนไลน์!

คำอธิบาย

n->{                  // int-accepting consumer
 for(int i=0;i<n;)    //  for each i from 0 to n-1 included
  System.out.printf(  //   output on stdout with a pattern
   i%2<1              //    if i is even:
    ?"<%s%n"          //     use the left-arrow pattern
    :"%s>%n",         //    else: use the right-arrow pattern
   "-".repeat(i++/2)  //    fill the "%s" in the pattern with i/2 dashes, and increment i
  );                  // 
}                     //


@candied_orange นั่นไม่ใช่ตัวเอง
Olivier Grégoire

ทำเช่นนี้ได้อย่างไร
candied_orange

@candied_orange เหมือนกัน: จำเป็นต้องมีการนำเข้าในการนับ
Olivier Grégoire

ทำไมไม่import java.util.function.*;นับ?
candied_orange

8

Haskell, 41 40 ไบต์

(`take`g">")
g p=p:('<':init p):g('-':p)

ลองออนไลน์!

recursion เก่าธรรมดา: เริ่มต้นด้วยสตริงp= ">"เก็บpเป็น<ในด้านหน้าของทั้งหมด แต่ถ่านสุดท้ายของpและโทร recursive กับหนึ่งวางอยู่ตรงหน้า- pใช้nรายการแรกของรายการนี้

แก้ไข: -1 ไบต์ขอบคุณ @xnor



6

พลเรือจัตวา BASIC V2 (C64), 94 ไบต์

0inputn:fOi=1ton:oniaN1gO1:?"<";
1on-(i<3)gO2:fOj=1.5toi/2:?"-";:nE
2on-nOiaN1gO3:?">";
3?:nE

ไม่แน่ใจเกี่ยวกับจำนวนไบต์ทั้งหมดนี้ขึ้นอยู่กับการแสดงข้อความสำหรับการพิมพ์โปรแกรมที่ถูกต้อง มันสั้นลงเล็กน้อยบนดิสก์ (91 ไบต์) เนื่องจาก BASIC V2 ใช้การแทนค่า "tokenized" ของโปรแกรม

การสาธิตออนไลน์

"ungolfed" เล็กน้อย:

0 inputn:fori=1ton:oniand1goto1:print"<";    :rem read n from user, loop to n, if odd skip "<"
1 on-(i<3)goto2:forj=1.5toi/2:print"-";:next :rem skip for i<3, print (i-1)/2 times "-"
2 on-notiand1goto3:print">";                 :rem if even skip ">"
3 print:next                                 :rem newline and next loop iteration

6

Brainfuck ที่แก้ไขตัวเองได้ขนาด 55 ไบต์

รับอินพุตเป็นรหัสอักขระ
รองรับอินพุตได้สูงสุด 255
ใช้อักขระ null เพื่อแยกบรรทัด

โดยบังเอิญตัวละครลูกศรวาดทั้งหมดจะใช้เป็นคำสั่ง BF น่าเสียดายที่มันไม่ได้บันทึกไบต์ใด ๆ (ในปัจจุบัน)

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

ลองออนไลน์!

คำอธิบาย

 Code  |              Memory         | Output | Comment
-------+-----------------------------+--------+--------------------------
       | '<' '>' '-' [0]  0   0   0  |        |
>>,    | '<' '>' '-'  0   0  [x]  0  |        |
[      |                             |        |
       | '<' '>' '-'  l   0  [x]  0  |        | l = arrow length
<<[-<  |                             |        | copy l to next cell
.>>+<] |                             |        | and print '-'
       | '<' '>' '-' [0]  l   x   0  | -----  | there are l '-'s
<<.    | '<' [>] '-'  0   l   x   0  | >      |
>>.+   | '<' '>' '-' [1]  l   x   0  | <null> |
>>-    | '<' '>' '-'  1   l  [y]  0  |        | y=x-1
[      |                             |        | execute if y>0
<<<<<. | [<] '>' '-'  1   l   y   0  | <      |
>>>>   | '<' '>' '-'  1  [l]  y   0  |        |
[-<+<. |                             |        |
>>]    | '<' '>' '-'  L  [0]  y   0  | -----  | L=l+1
.      | '<' '>' '-'  L  [0]  y   0  | <null> |
>-<]>] |                             |        | decrement y
<>-    |                             |        | do nothing, used as data


5

Pyth, 17 ไบต์

m_W%d2+*\-/d2@"><

เอาท์พุทเป็นรายการของสตริง ลองออนไลน์ได้ที่นี่

m_W%d2+*\-/d2@"><"dQ   Implicit: Q=eval(input())
                       Trailing "dQ inferred
m                  Q   Map [0-Q), as d, using:
          /d2            Floored division of d by 2
       *\-               Repeat "-" the above number of times
      +                  Append to the above...
             @"><"d      Modular index d into "><" - yields ">" for even d, "<" for odd
                         - examples: d=4 gives "-->", d=7 gives "---<"
 _W                      Reverse the above if...
   %d2                   ... (d % 2) != 0
                       Implicit print result of the map

5

PowerShell , 62 56 50 ไบต์

param($n)(0..$n|%{($j='-'*$_)+'>';"<$j"})[0..--$n]

ลองออนไลน์!

วนซ้ำจาก0อินพุตสูงสุด$nแต่ละการวนซ้ำสร้างสตริงลูกศรสองสตริง สิ่งเหล่านั้นจะถูกจัดทำดัชนีด้วย0..--$nเพื่อดึงองค์ประกอบที่ถูกต้องออกมาจำนวนมาก

บันทึก 6 ไบต์ขอบคุณ KGlasier


messing รอบกับโซลูชันของฉันฉันพบวิธีการตัดไม่กี่ไบต์ในของคุณ: สามารถบันทึก 4 ไบต์โดยการวนลูปในวงเล็บและการทำดัชนีโดยตรง param($n)(0..$n|%{($j='-'*$_++)+'>';"<$j"})[0..--$n]กล่าวคือ ดังนั้นตอนนี้คุณไม่ต้องเขียน$xสองครั้ง
KGlasier

นอกจากนี้คุณสามารถบันทึกไบต์ที่สองมากขึ้นโดยไม่ได้ใช้++ใน($j='-'*$_++)ขณะที่คุณไม่ได้ใช้$_ทุกที่อื่น
KGlasier

1
@KGlasier Awesome - ขอบคุณสำหรับสนามกอล์ฟที่ชัดเจน! :)
AdmBorkBork


5

Haskell , 51 44 ไบต์

-7 ไบต์ขอบคุณxnor (ใช้iterateมากกว่า list-comprehension)!

(`take`do b<-iterate('-':)"";[b++">",'<':b])

ลองออนไลน์!

คำอธิบาย / Ungolfed

การใช้คำdoอธิบายประกอบช่วยให้เรา a concatและการใช้เครื่องหมาย - อนุญาตให้ฟังก์ชั่น pointfree ด้วยการtakeยกเลิกสิ่งเหล่านี้จะให้:

f n = take n $ concat [ [b++">", '<':b] | b <- iterate ('-':) "" ]

5

Japté -m, 16 15 13 12 ไบต์

บันทึก 1 ไบต์ขอบคุณShaggy

g<i>)iUUz ç-

ทดสอบออนไลน์

คำอธิบาย:

-m            // Map the program through [0...Input); U becomes the iterative number
g<i>)iUUz ç-  
 <i>          // ">" prepended with "<", creating "><"
g             //   Get the char at index U, with index-wrapping
    i         // Insert:
     U        //   At index U, with index-wrapping
         ç-   //   "-" repeated:
      Uz      //     U/2 times


@Shaggy Ha! ฉลาดมากขอบคุณ!
โอลิเวอร์


4

MathGolf , 17 15 ไบต์

บันทึก 2 ไบต์ด้วย Jo King และ Kevin Cruijssen

{ï½'-*'>ï¥╛Å⌡\n

ลองออนไลน์!

คำอธิบาย

วิธี 15 ไบต์แตกต่างจากโซลูชันดั้งเดิมของฉันฉันไม่สามารถให้เครดิตสำหรับการใช้งานได้

{                 start block or arbitrary length
 ï                index of current loop, or length of last loop
  ½               pop a : push(a//2 if int else a/2)
   '-             push single character "-"
     *            pop a, b : push(a*b)
      '>           push single character ">"
        ï         index of current loop, or length of last loop
         ¥        modulo 2
          ╛       if without else
           Å      start block of length 2
            ⌡     decrement twice
             \    swap top elements
              n   newline char, or map array with newlines

วิธีการที่ไม่if/elseทำงานใน MathGolf? ฉันรู้ว่าคำสั่ง if-without-else และ else-without-if ทำงานอย่างไร แต่จะสร้าง if {... } else {... } ใน MathGolf ได้¿อย่างไร (บางทีฉันควรโพสต์สิ่งนี้ในการแชทแทนที่จะอยู่ที่นี่ .. แต่บางทีฉันอาจบันทึก 1 ไบต์ถ้าฉันสามารถแก้ไข if-else ได้)
Kevin Cruijssen

1
@KevinCruijssen ฉันคิดว่ามันใช้ได้กับสองคำสั่ง / บล็อกต่อไป เช่น¿12จะเพิ่ม 1 ถ้าเป็นจริงและอีก 2 ¿Å3*Å1+จะเพิ่มหนึ่งถ้าเป็นจริงอีกสามเท่าขององค์ประกอบถัดไป
Jo King

@KevinCruijssen if / else แสดงโอเปอเรเตอร์หรือบล็อกสองรายการจากโค้ด โจพระมหากษัตริย์เป็นที่ถูกต้องในตัวอย่างของเขา แต่คุณยังสามารถทำหรือ¿{"foo"}{"bar"} ¿1{2}
maxb

@ โจกิ้งฉันจะเพิ่มสิ่งที่ต้องทำเพื่อแก้ไขเอกสารสำหรับตัวดำเนินการแบ่งส่วน
maxb

1
15 bytesโดยใช้วิธีการแก้ปัญหาของ @ KevinCruijssen
Jo King

4

Japt -m , 14 ไบต์

"<>"¬hUUz ç-)q

ลองออนไลน์!

อัปเดตด้วยวิธีการใหม่อย่างสมบูรณ์

คำอธิบาย:

                  #Implicitly map over the range [0..input) as U
"<>"              #The string "<>"
    ¬             #Split into the array ["<",">"]
     hU     )     #Replace the element at index U with wrapping:
           -      # The character '-'
          ç       # Repeated a number of times equal to
       Uz         #  U integer divided by 2
             q    #Join the array to a string

1
ç'อัตโนมัติปลดเปลื้องพารามิเตอร์แรกมันเป็นสตริงเพื่อให้คุณสามารถวาง
โอลิเวอร์

1
คุณไม่จำเป็นต้องใช้uวิธีการเนื่องจากการห่อดัชนีเพื่อให้มีขนาด 14 ไบต์
Shaggy

4

C (gcc) , 80 77 76 74 71 ไบต์

g(n,i,j){--n&&g(n);for(j=n%2,i=n/=2;putchar(~n?n---i*j?45:62-j*2:0););}

ลองออนไลน์!

-3 ไบต์ด้วยความคิดจากASCII เท่านั้น

-1 พร้อม\0แทน\n

-5 การจัดเรียงชิ้นส่วนใหม่


\0การส่งออกรวมถึงการต่อท้าย

g(n,i,j){
    --n&&g(n);              //draw smaller arrows first (if n>1)
    for(j=n%2,i=n/=2;       //j:!(input parity); i:arrow len-1=ceil(input)/2-1
        putchar(~n          //if n>=0, arrow is not yet completed
                ? n---i*j   //if not first (j==1) or last (j==0) char of arrow:
                  ? 45      // output '-'
                  : 62-j*2  // otherwise, output the appropriate arrow head
                : 0););     //\0 after arrow complete. putchar returns 0; loop terminates
}

นี้ อาจจะชัดเจน? idk
เฉพาะ ASCII


@ ASCII เท่านั้นใช่นั่นน่าจะชัดเจนกว่าแม้ว่ามันจะไม่ได้สร้างความแตกต่างให้กับ bytecount ก็ตาม สำหรับจุดที่สองนั้นขอบคุณสำหรับความคิด! จัดการให้เล็มได้ถึง 78 ด้วยนั่นเอง
attinat


XD คุณยังมี!n--ใน codeblock แรก
ASCII เท่านั้นเท่านั้น




3

ถ่าน 16 ไบต์

NθFθ«⊘ι↓>‖T»Fθ‖T

ลองออนไลน์! การเชื่อมโยงคือการใช้รหัสเวอร์ชันอย่างละเอียด ฉันมีวิธีแก้ปัญหา 17 ไบต์สามข้อก่อนที่จะเจอปัญหานี้ในที่สุด คำอธิบาย:

Nθ

nอินพุต

Fθ«

ทำซ้ำnครั้ง 0 ดัชนี

⊘ι

ลากเส้นที่มี-ความยาวครึ่งหนึ่งของดัชนี (ตัดให้สั้นลง)

↓>

วาดหัวลูกศรและย้ายไปที่บรรทัดถัดไป

‖T»

สะท้อนทุกอย่างพลิกหัวลูกศร

Fθ‖T

วงด้านบนมีการnสะท้อนกลับ แต่เราต้องการจำนวนการnสะท้อนค่อนข้างเท่า



3

จาวาสคริปต์, 49 ไบต์

f=n=>--n?f(n,l='')+(n%2?`
<`+l:`
${l+='-'}>`):'>'

ลองออนไลน์!


ว้าวสวยเท่ห์
Limbo

... แต่มันยังใช้งานได้ใน10000ขณะที่โซลูชัน ES6 ของฉันยังคงใช้งานได้: D ยังไงก็ตามโซลูชันของคุณเจ๋งมาก)
Limbo


2

รหัสเครื่อง 6502 (C64), 49 ไบต์

00 C0 20 9B B7 A2 00 8A 4A A8 90 05 A9 3C 20 D2 FF A9 2D C0 00 F0 06 20 D2 FF 
88 D0 FA 8A 4A B0 05 A9 3E 20 D2 FF A9 0D 20 D2 FF E8 E4 65 D0 D7 60

ยังค่อนข้างสั้นกว่าBASICเล็กน้อย) อันนี้มีช่วงตัวเลขไม่เกิน255เพราะจำนวนเต็มธรรมชาติของเครื่องมีเพียง 8 บิต

การสาธิตออนไลน์

การใช้งาน: SYS49152,[n](เช่นSYS49152,3สำหรับตัวอย่างจากการท้าทาย)

ความคิดเห็นถอดแยกชิ้นส่วน :

         00 C0       .WORD $C000        ; load address
.C:c000  20 9B B7    JSR $B79B          ; get unsigned byte from commandline
.C:c003  A2 00       LDX #$00           ; main loop counter
.C:c005   .loop:
.C:c005  8A          TXA                ; loop counter to accumulator
.C:c006  4A          LSR A              ; divide by 2, shift lowest bit to C
.C:c007  A8          TAY                ; result to Y
.C:c008  90 05       BCC .toright       ; C clear -> counter even, skip '<'
.C:c00a  A9 3C       LDA #$3C           ; load character '<'
.C:c00c  20 D2 FF    JSR $FFD2          ; output character
.C:c00f   .toright:
.C:c00f  A9 2D       LDA #$2D           ; load character '-'
.C:c011  C0 00       CPY #$00           ; counter/2 == 0 ? then no dashes
.C:c013  F0 06       BEQ .skipdashes
.C:c015   .printdashes:
.C:c015  20 D2 FF    JSR $FFD2          ; output character
.C:c018  88          DEY                ; decrement Y
.C:c019  D0 FA       BNE .printdashes   ; not 0 yet -> repeat
.C:c01b   .skipdashes:
.C:c01b  8A          TXA                ; loop counter to accumulator
.C:c01c  4A          LSR A              ; shift lowest bit to C
.C:c01d  B0 05       BCS .toleft        ; C set -> counter odd, skip '>'
.C:c01f  A9 3E       LDA #$3E           ; load character '>'
.C:c021  20 D2 FF    JSR $FFD2          ; output character
.C:c024   .toleft:
.C:c024  A9 0D       LDA #$0D           ; load newline character
.C:c026  20 D2 FF    JSR $FFD2          ; output character
.C:c029  E8          INX                ; next loop iteration
.C:c02a  E4 65       CPX $65            ; compare to command line argument
.C:c02c  D0 D7       BNE .loop          ; not reached yet -> repeat main loop
.C:c02e  60          RTS                ; exit


2

K (ngn / k) , 31 29 ไบต์

{"<->"x#2,x{(1=*x)_1,2-|x}\0}

ลองออนไลน์!

ก่อนอื่นเราสร้างรายการด้วย 0 แทน"<"1 แทน"-"และ 2 แทน">":

{ } ฟังก์ชั่นที่มีข้อโต้แย้ง x

x{... }\0ใช้ฟังก์ชันภายในxเวลาเริ่มต้นด้วยค่าเริ่มต้น0และการรักษาผลกลาง

|x ถอยหลัง

2- แทนที่ 0 ด้วย 2 และในทางกลับกันรักษา 1s ตามที่เป็น

1, เติม 1

(1=*x)_แรกของxเท่ากับ 1 คืออะไร? ถ้าใช่ปล่อยองค์ประกอบหนึ่งมิฉะนั้นปล่อย 0 องค์ประกอบ (ไม่ทำอะไรเลย)

2,เติม 2 สำหรับ">"ลูกศรเริ่มต้น

x#เรามีรายการเล็ก ๆ น้อย ๆ มากเกินไปเพื่อให้ใช้เพียงครั้งแรกxของพวกเขา

"<->" ใช้องค์ประกอบรายการ (0/1/2) เป็นดัชนีในสตริงนี้


ฉันอยากจะขอคำอธิบาย (ฉันยังไม่ได้เริ่มเรียนรู้ K ฉันไม่รู้ว่าจะเริ่มรุ่นไหนกับ ... )
Galen Ivanov

1
@ GalenIvanov ฉันพยายามเขียนคำอธิบายฉันหวังว่ามันจะสมเหตุสมผล ขอบคุณที่คุณให้ความสนใจในภาษาโปรดของฉัน :) มีการใช้งานหลายอย่างด้วยข้อดีและข้อเสียที่แตกต่างกัน ( ต้นฉบับของ kx , kona , oKและฉันทำงานด้วยตัวเอง) คุณต้องการที่จะเข้าร่วมห้องสนทนา aplเพื่อให้ฉันสามารถให้รายละเอียดเพิ่มเติมหรือไม่
ngn

ขอบคุณฉันอยู่ที่นั่นแล้ว
กาเลนอีวานอฟ

2

05AB1E , 23 20 ไบต์

FNÉD„><è'-N;∍«s_iR},

ลองออนไลน์!

ครั้งแรกที่ใช้ 05AB1E หรือภาษากอล์ฟอื่น ๆ สำหรับเรื่องนั้น ความคิดใด ๆ ยินดีต้อนรับ

-3 จาก Kevin Cruijssen


1
ยินดีต้อนรับสู่โลกของ 05AB1E และคำตอบแรกที่ดี +1 จากฉัน :) "><"สามารถ„><บันทึกไบต์ได้ มี builtins สำหรับ 1, 2, และ 3 สายถ่านเป็นอยู่', และตามลำดับ นี่เป็นทางเลือก 18 ไบต์ที่ฉันคิดขึ้นมา แต่บางทีมันอาจจะเล่นกอล์ฟได้มากกว่านี้ หากคุณยังไม่เห็นว่ามันยังเรามีเคล็ดลับสำหรับการเล่นกอล์ฟใน 05AB1Eหน้าและยังรู้สึกฟรีเพื่อขอสิ่งใดในการแชท
Kevin Cruijssen

1
@KevinCruijssen ขอบคุณมากสำหรับความคิดของคุณ ฉันรู้สึกไม่ถูกต้องเพียงแค่ใช้รหัสของคุณเพราะมันให้ความรู้สึกแตกต่างจากของฉันค่อนข้างมาก แต่ฉันใช้ความคิดของ modulo 2 เพื่อตรวจสอบว่ามีตัวเลขแปลกหรือไม่ ฉันยังใช้ความคิดสตริงอักขระทั้งสอง ฉันจะไม่รังเกียจเลยถ้าคุณโพสต์รุ่น 18 ไบต์ด้วยตัวคุณเอง
nedla2004

ฉันโพสต์คำตอบของฉันในกรณีนั้น :)
Kevin Cruijssen

2

C # (.NET Core) , 90 ไบต์

a=>{for(int i=0;i<a;i++){var s=new String('-',i/2);Console.WriteLine(i%2<1?s+">":"<"+s);}}

ลองออนไลน์!

ใช้ ตัวแทนการดำเนินการเพื่อดึงข้อมูลเข้าและไม่ต้องการผลตอบแทน

Ungolfed:

a => {
    for(int i = 0; i < a; i++)          // from [0, a)
    {
        var s = new String('-', i / 2);     // create string of dashes of length (a / 2)
        Console.WriteLine(i % 2 < 1 ?       // write arrow
                                s + ">" :       // if i is even: dashes plus ">"
                                "<" + s);       // if i is odd: "<" plus dashes
    }
}


@EmbodimentofIgnorance ไม่ทำงานขาดสตริงเอาต์พุต "" "ตัวแรก
เมียร์แคต


2

ES6, 96 82 79 70 ไบต์

ลองออนไลน์! (ขอบคุณ @Oliver)

n=>[...Array(n)].map((_,i)=>(i%2?"<":"")+"-".repeat(i/2)+(i%2?"":">"))

1
ยินดีต้อนรับสู่ PPCG! โดยค่าเริ่มต้นการป้อนข้อมูลเป็นตัวแปรจะไม่ได้รับอนุญาต คุณต้องทำให้มันฟังก์ชั่น (เพียงติดi=>อยู่ข้างหน้ารหัสของคุณ!) หรือจากอาร์กิวเมนต์บรรทัดคำสั่งหรือ STDIN หรือบางสิ่งบางอย่าง
HyperNeutrino

@HyperNeutrino โอเคแก้ไขคำตอบแล้ว อย่างไรก็ตามคำตอบที่โหวตมากที่สุดมีเพียงเนื้อหาของฟังก์ชัน แต่ตกลง อย่างไรก็ตามฉันเป็นคนนอก)
Limbo

คุณสามารถเชื่อมโยงมันได้หรือไม่ ฉันไม่คิดว่าพวกเขาจะไม่ถูกต้องอย่างน้อยที่สุดก็ไม่น้อย
HyperNeutrino

1
อีกสองสามไบต์: ลองออนไลน์
Oliver

1
อีกสองสามไบต์ถ้าคุณจัดเรียงตัวดำเนินการประกอบใหม่ล่าสุดและลบวงเล็บกลาง: ลองออนไลน์
Oliver

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.