ตัวอักษรกึ่งแนวทแยง


35

ให้ตัวอักษรภาษาอังกฤษงานของคุณคือการสร้างตัวอักษรกึ่งแนวทแยงให้กับการป้อนข้อมูล

วิธีสร้างตัวอักษรกึ่งแนวทแยง

คำอธิบายสั้น ๆ : อันดับแรกคุณรับตำแหน่งของตัวอักษรในตัวอักษรP( Pมีการจัดทำดัชนี 1 ที่นี่) จากนั้นคุณพิมพ์ตัวอักษรแต่ละตัวจนกระทั่งอินพุต (รวม) บนบรรทัดนำหน้าP-1และทำซ้ำตัวอักษรPครั้งนั้นแทรกด้วยเว้นวรรค

ตัวอย่าง :

  • ได้รับFโปรแกรมของคุณควรส่งออก:

     
     BB 
      CCC 
       DDDD 
        EEEEE 
         FFFFFF 
    
  • ได้รับKโปรแกรมของคุณควรส่งออก:

    A
     BB 
      CCC 
       DDDD 
        EEEEE 
         FFFFFF 
          GGGGGGG 
           HHHHHHHH 
            IIIIIIIII 
             JJJJJJJJJJ 
              KKKKKKKKKKK 
    
  • ได้รับAโปรแกรมของคุณควรส่งออก:

    A
    

กฎระเบียบ

  • คุณอาจเลือกตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่ แต่ควรสอดคล้องกัน

  • คุณอาจมีช่องว่างที่ไม่เกี่ยวข้องดังต่อไปนี้:

    • หนึ่งช่องว่างที่สอดคล้องกัน (ในแต่ละบรรทัด)
    • ขึ้นบรรทัดใหม่หรือขึ้นบรรทัดใหม่
    • ช่องว่างต่อท้าย
  • อินพุทและเอาท์พุทสามารถถ่ายได้ด้วยค่าเฉลี่ยมาตรฐานและใช้ช่องโหว่เริ่มต้น

  • คุณได้รับอนุญาตให้ส่งออกรายการบรรทัดแทนตราบใดที่คุณยังให้บริการเวอร์ชัน

  • นี่คือดังนั้นโค้ดที่สั้นที่สุดในหน่วยไบต์ชนะ!

แรงบันดาลใจจากความท้าทายนี้


เอาต์พุตเป็นรายการของสตริงตกลงหรือไม่?
อดัม

2
ทำไมต้องลงคะแนน ฉันจะปรับปรุงอะไรดี

1
เมื่อคุณพูดว่า "P เป็นดัชนี 1 ที่นี่" นี่หมายถึงความท้าทายหรือตัวอย่างหรือไม่?
เดฟ

3
@pizzakingme ไม่คุณอาจไม่ได้

1
ฉันมีรูปแบบที่น่าสนใจโดยไม่ตั้งใจขณะเล่นกอล์ฟคำตอบของฉัน: tio.run/##K0nO@f@/@
sergiol

คำตอบ:


10

Python 3 , 59 ไบต์

lambda l:[' '*i+'%c '%(i+65)*-~i for i in range(ord(l)-64)]

ลองออนไลน์!

Python 3 , 61 ไบต์

lambda l:[' '*i+-~i*(chr(i+65)+' ')for i in range(ord(l)-64)]

ลองออนไลน์! (ลิงก์ไปยังรุ่นที่พิมพ์สวย)


8
ฉันเห็นว่าไม่มีเหตุผลสำหรับ downvote @downvoter สามารถอธิบายได้หรือไม่
Mr. Xcoder

1
ฉันคิดว่ามันเป็นเพียงความผิดพลาดหรือบางทีคนที่ไม่ชอบคำอธิบายที่ไม่เพียงพอ (อันหลังค่อนข้างไม่น่าจะเป็น IMO)
Conor O'Brien

ฉันไม่ชอบ Python และฉันไม่สามารถนำไปใช้กับ Python ได้ดังนั้นคำตอบจะไม่เป็นประโยชน์สำหรับฉัน เพียงล้อเล่น แต่คำแนะนำเครื่องมือปุ่มอาจไม่ตรงกับกฎของไซต์นี้
Thomas Weller

มันเป็นแค่ฉันหรือว่า Mr. Xcoder มี 1 ตัวแทน ...
Stan Strum



7

PowerShell , 45 42 ไบต์

65..$args[0]|%{" "*$i+++"$([char]$_) "*$i}

ลองออนไลน์!

รับอินพุตเป็นตัวอักษรถ่านจากนั้นวนซ้ำผ่านเมืองหลวงไปที่จุดนั้นการวนซ้ำแต่ละครั้งจะเตรียมจำนวนช่องว่างที่เหมาะสมจากนั้นไฮบริด char \ space

บันทึก 3 ไบต์ด้วย TessellatingHeckler


@TessellatingHeckler แน่นอน ฉันเล่นกอล์ฟ"$args"มากจนไม่ได้ผลที่นี่ฉันลืม[0]วิธีการ ฮ่าฮ่า
AdmBorkBork

5

JavaScript (ES6), 85 ไบต์

ใช้ตัวพิมพ์เล็กสำหรับทั้งอินพุตและเอาต์พุต ส่งออกพื้นที่นำและพื้นที่ต่อท้ายในแต่ละบรรทัด

f=(c,k=10,C=k.toString(36),r=s=>`${s} `.repeat(k-9))=>r``+r(C)+(C==c?'':`
`+f(c,k+1))

การสาธิต


`${s} `สามารถถูกแทนที่ด้วย(s+"")การประหยัดหนึ่งไบต์
ลุค

@ ลุคฉันต้องการพื้นที่นี้ มันสามารถถูกแทนที่ด้วย(s+" ")แต่นั่นก็นาน
Arnauld

5

APL (Dyalog) 26 ไบต์

พร้อมต์สำหรับอักขระสเกลาร์ พิมพ์รายการของบรรทัด

(∊⍴∘'',' ',¨⍨⊢⍴⊃∘⎕A)¨⍳⎕A⍳⎕

ลองออนไลน์! (มี ASCII เวอร์ชันศิลปะที่หนึ่งไบต์เพิ่มเติม)

 พรอมต์สำหรับการป้อนข้อมูล

⎕A⍳ พบɩ nDex ในlphabet

 ครั้งแรกที่หลายɩ ntegers

(...  ใช้ฟังก์ชัน tacit ต่อไปนี้กับแต่ละรายการ:

⊃∘⎕A เลือกตัวอักษรตัวอักษรโต้แย้งจากA lphabet

⊢⍴ เปลี่ยนรูปร่างใหม่ตามความยาวอาร์กิวเมนต์

' ',¨⍨ ต่อท้ายแต่ละพื้นที่

⍴∘'', เติมสตริงของความยาวอาร์กิวเมนต์ (เพิ่มด้วยช่องว่าง)

ϵ รายการ (แผ่)


ASCII art version เพิ่งจะมีด้านซ้าย; รายการผสมของสตริงลงในตารางของตัวละคร


4

Perl 5 , 31 ไบต์

30 รหัสไบต์ + 1 -lสำหรับ

print$"x$-,"$_ "x++$-for A..<>

ลองออนไลน์!


คุณสามารถลดสิ่งนี้ลงได้โดยใช้sayแทน-lธง: ลองออนไลน์!
Xcali

@ Xcali ฉันฉีกขาด-E/ -M5.01ฉันเคยใช้sayมากในอดีตและอาจใช้ความจริงที่ว่าsayเป็นทางเลือกprintในการท้าทายแหล่ง จำกัด หรือคล้ายกันบางทีอาจจะเป็นเพราะ -3 ตามที่เป็นอยู่ในตอนนี้ ดูโพสต์เมตานี้อาร์กิวเมนต์ยุติธรรม ขอบคุณอินพุตแม้ว่า!
Dom Hastings

3

Dyalog APL ขนาด 38 ไบต์

{↑{(y/' '),(2×y←⎕A⍳⍵)⍴⍵,' '}¨⎕A↑⍨⎕A⍳⍵}

ลองออนไลน์!

อย่างไร?

⎕A↑⍨ - ใช้ตัวอักษรจนกระทั่ง

⎕A⍳⍵ - ตัวอักขระอินพุต

¨ - สำหรับแต่ละถ่าน

    ⍵,' ' - ใช้ถ่านและพื้นที่

    (...)⍴ - ก่อร่างใหม่เป็น

    2×y←⎕A⍳⍵ - ดัชนีของถ่านในตัวอักษรเป็นสองเท่า

    (y/' ') - และเพิ่มช่องว่าง index-of-char

- จากนั้นเรียบ


3

APL (Dyalog Classic)ขนาด 26 ไบต์

{↑{(≠\⍵<⍳3×⍵)\⍵⊃⎕A}¨⍳⎕A⍳⍵}

ลองออนไลน์!

คำอธิบาย

                      ⍳⎕A⍳⍵  generate indexes up to position of right arg 
{                          on each index apply function
   (≠\⍵<⍳3×⍵)                generate boolean mask for expansion (each line has a length 3 times its index ⍵, starting with  blanks and then alternating letter blank)
             \⍵⊃⎕A          expand character in position 
                             mix result into text matrix

ดี ... 4 APL-er กำลังแก้ปัญหาเดียวกันในเวลาเดียวกัน! :) ฉันคิดว่าใน codegolf คุณได้รับอนุญาตให้ลบส่วนนอก{}แทนที่ด้วยและอ้างว่ามันเป็น "โปรแกรมที่สมบูรณ์" มากกว่าฟังก์ชั่น นั่นจะทำให้ทางออกของคุณดีที่สุด (จนถึงตอนนี้)
ngn

ต้องเป็นสัญญาณที่ดี :) ขอบคุณสำหรับคำแนะนำ ฉันเคยเห็นมันทำไปแล้วแต่ไม่แน่ใจว่าจะวาดเส้นตรงไหน ฉันเดาว่าฉันสามารถบันทึกได้ 3 ไบต์ถ้าฉันลบ curlies และมิกซ์
Gil

3

V , 28, 26, 25 , 23 ไบต์ ( การแข่งขัน )

¬A[/a
lDÓ./& ò
ò-Ûä$Û>

ลองออนไลน์!

โปรดทราบว่าแม้ว่าฉันได้วางแผนที่จะเพิ่มคุณสมบัติบางอย่างมาเป็นเวลานานความท้าทายนี้เป็นสิ่งที่ทำให้ฉันเชื่อมั่นในที่สุด

เอาต์พุตมีหนึ่งช่องว่างนำหน้าในแต่ละบรรทัดและหนึ่งบรรทัดขึ้นบรรทัดใหม่

hexdump:

00000000: ac41 5b2f 1261 0a6c 44d3 2e2f 2620 f20a  .A[/.a.lD../& ..
00000010: f22d dbe4 24db 3e                        .-..$.>

คำอธิบาย:

¬A[         " Insert 'ABCDEFGHIJKLMNOPQRSTUVWXYZ['
   /        " Search for...
    <C-r>a  "   The input
l           " Move one character to the right
 D          " And delete every character after the cursor
  Ó         " Search for...
   .        "   Any character
    /       " And replace it with...
     & ò    "   That character followed by a space and a newline
ò           " Recursively...
 -          "   Move to the beginning of the next line up
  Ûä$       "   Make *line number* copies of the current line
     Û>     "   And indent this line by *line number* spaces

1
นี่คือการแข่งขัน คุณสามารถลบคำพูดชื่อเรื่องได้

มันมีประโยชน์สำหรับผู้ที่ไม่ทราบเมตาใหม่เช่นตัวเอง
Conor O'Brien

3

05AB1E , 10 ไบต์

A¹¡н«ðâƶāú

ลองออนไลน์!

-2 ขอบคุณที่Adnan

ผนวก»เพื่อให้พิมพ์เป็นบรรทัดแยกกัน


คุณสามารถเว้น<ช่องว่างการนำทางที่สอดคล้องหนึ่งช่องได้
Emigna

@ Emigna ขอบคุณ!
Erik the Outgolfer

A¹¡н«ðâƶāúควรทำงานได้ 10 ไบต์
Adnan

@Adnan ฉันคิดว่า¹¡มันจะไม่ทำงาน ... โอ้นั่นคือเหตุผลที่มี«อยู่ในนั้น : p
Erik the Outgolfer

3

R, 94 88 ไบต์

-6 ไบต์ขอบคุณ Giuseppe

function(x,l=LETTERS)for(i in 1:match(x,l))cat(rep(' ',i-1),rep(paste(l[i],' '),i),'\n')}

Ungolfed:

f=function(x,l=letters){
  for(i in 1:which(l==x)){
    A=paste(l[i],' ')
    cat(rep(' ',i-1),rep(A,i),'\n')
  }
}

88 ไบต์ : การส่งคืนฟังก์ชั่นนิรนามเป็นเรื่องปกติคุณสามารถกำจัดวงเล็บปีกกาเนื่องจากfเป็นสายการบินเดียวและใช้matchแทนการwhichบันทึกไบต์
Giuseppe


68 ไบต์รับอินพุตจาก stdin
Giuseppe

3

Haskell, 52 44 ไบต์

f k=[[" ",s:" "]>>=(['A'..s]>>)|s<-['A'..k]]

ส่งคืนรายการบรรทัด

ลองออนไลน์!

f k=                  -- main function is f, input parameter k
  [   |s<-['A'..k]]   -- for each s from ['A'..k]
     >>=              -- map (and collect the results in a single string) the function: 
         (['A'..s]>>) --  replace each element in ['A'..s] with
    [  ,  ]           --  over the list, containing
     " "              --   a single space to get the indent
        s:" "         --   s followed by space to get the letter sequence

แก้ไข: @jferard: บันทึกสามไบต์ ขอบคุณ!


49 ไบต์:f k=[tail$[" ",s:" "]>>=(['A'..s]>>)|s<-['A'..k]]
jferard

@ jferard: ขอบคุณมาก rereading tail$ท้าทายผมสังเกตเห็นว่าพื้นที่ชั้นนำต่อบรรทัดที่ได้รับอนุญาตดังนั้นเราจึงไม่จำเป็นต้องใช้
nimi

2

JavaScript (ES8), 92 ไบต์

c=>(g=n=>n>9?[...g(n-1),`${n.toString(36)} `.repeat(n-=9).padStart(n*3)]:[])(parseInt(c,36))

ใช้อักษรตัวพิมพ์เล็ก เส้นมีหนึ่งนำหน้าและหนึ่งช่องว่างต่อท้าย ส่งคืนอาร์เรย์ของบรรทัด

ตัวอย่างการทดสอบ

let f=

c=>(g=n=>n>9?[...g(n-1),`${n.toString(36)} `.repeat(n-=9).padStart(n*3)]:[])(parseInt(c,36))

;O.innerText=f("k").join`\n`
<pre id=O></pre>


2

แกลบ , 13 ไบต์

z+ḣ∞øzRNC1…'A

ใช้อักขระในเครื่องหมายคำพูดเดี่ยวเป็นอาร์กิวเมนต์บรรทัดคำสั่งพิมพ์ผลลัพธ์ไปที่ STDOUT ลองออนไลน์!

คำอธิบาย

ฉันใช้ประโยชน์จากวิธีที่ Husk พิมพ์รายการของรายการสตริง: เข้าร่วมรายการภายในด้วยช่องว่างและรายการภายนอกด้วยการขึ้นบรรทัดใหม่

z+ḣ∞øzRNC1…'A  Implicit input, say 'C'
          …'A  Range from A: "ABC"
        C1     Cut into strings of length 1: ["A","B","C"]
     z N       Zip with positive integers
      R        using repetition: x = [["A"],["B","B"],["C","C","C"]]
   ∞ø          The empty string repeated infinitely: ["","","",...
  ḣ            Prefixes: [[],[""],["",""],["","",""],...
z+             Zip with x using concatenation: [["A"],["","B","B"],["","","C","C","C"]]
               Implicitly join each inner list with spaces, join the resulting strings with newlines and print.

2

05AB1E , 15 14 13 ไบต์

บันทึก 1 ไบต์ต้องขอบคุณAdnan

A¹¡н«ƶ€S»¶¡āú»

ลองออนไลน์! หรือรุ่นศิลปะ Ascii

คำอธิบาย

A                # push lowercase alphabet
 ¹¡              # split at input
   н             # get the first part
    «            # append the input
     ƶ           # repeat each a number of times corresponding to its 1-based index
      €S         # split each to a list of chars
        »        # join on spaces and newlines
         ¶¡      # split on newlines
           āú    # prepend spaces to each corresponding to its 1-based index
             »   # join on newlines


@EriktheOutgolfer: เราทำมันค่อนข้างคล้ายกัน แต่ความคิดที่ดีมาก ๆ ของคุณคือการต่อเติมพื้นที่ก่อนที่จะยกออกทำให้ความจำเป็นในการเข้าร่วมลดลง ฉันไม่ได้อ่านว่าช่องว่างนำหน้า / ต่อท้ายหรือเอาท์พุทเนื่องจากรายการไม่เป็นไรดังนั้นหวังว่าฉันจะสอนให้ฉันอ่านความท้าทายทั้งหมดก่อนที่จะนำไปใช้: P
Emigna

tl; dr: vectorization: p
Erik the Outgolfer

A¹¡н«แทนที่จะADIk>£ทำงานได้
Adnan

@Adnan: ขอบคุณ! ฉันมีA¹¡нแต่ไม่ได้พิจารณาที่«จะได้รับจดหมายฉบับสุดท้ายดังนั้นมันจึงไม่ดีพอ: P
Emigna


2

QBasic, 79 74 72 ไบต์

ขอบคุณ Taylor Scott สำหรับการประหยัด byte (สองครั้ง!)

FOR i=1TO ASC(INPUT$(1))-64
?TAB(i)
FOR j=1TO i
?CHR$(64+i)" ";
NEXT j,i

ใช้ตัวพิมพ์ใหญ่ การป้อนข้อมูลด้วยปุ่มกดและไม่ได้สะท้อนไปที่หน้าจอ

คำอธิบาย

เราวนiจาก1สูงสุดไปยังตำแหน่งของตัวอักษรที่ จำกัด ในตัวอักษร (1-based) สำหรับแต่ละiเราย้ายไปที่คอลัมน์iของหน้าจอโดยใช้TAB; จากนั้นiเวลาเราพิมพ์iตัวอักษรตัวที่สองของตัวอักษรตามด้วยช่องว่าง


ตามที่ปรากฎว่าคุณสามารถใช้INPUT$(1)คำสั่งแทนโดยตรงสำหรับตัวแปรz$สำหรับเดลต้าของ -2 bytes
Taylor Scott

@TaylorScott ความคิดที่ดีขอบคุณ!
DLosc

2

Japté -R , 24 23 17 15 ไบต์

ส่งออกอาร์เรย์รวมถึงการขึ้นบรรทัดใหม่ชั้นนำและพื้นที่ชั้นนำและต่อท้ายในแต่ละบรรทัด

IòUc ÏçSiXd¹iYç

ทดสอบมัน

  • บันทึก 1 ไบต์ด้วยความช่วยเหลือจากOliverและอีก 6 ขอบคุณเขาชี้ให้เห็นวิธีที่ดีกว่าในการสร้างอาร์เรย์เริ่มต้น

1

ถ่าน , 18 ไบต์

F⁺⌕αθ¹«P×⁺§αι ⁺ι¹↘

ลองออนไลน์!


ไม่คุณไม่สามารถปล่อยให้ 05AB1E เอาชนะ Charcoal ได้ ... : P
มนุษย์


ช่องว่างนำโดยพลการที่น่าเศร้านั้นไม่ได้รับอนุญาตมิฉะนั้นE…·?θ⁺× κ⪫× κιจะทำงานใน 14 ไบต์
Neil

@Nilil ช่องว่างนำหน้าหนึ่งเดียวได้รับอนุญาต แต่ฉันไม่แน่ใจว่า?เข้าไปได้อย่างไร ฉันควรจะเป็นอย่างนั้นAแทน โอ้เดี๋ยวก่อนโอ้โหฉันเห็นสิ่งที่คุณหมายถึง
Erik the Outgolfer

1

Braingolf , 65 ไบต์

a#a-# 7-,-~vc<!?>[$_]:$_|&,(.#a-!?.>[# M]1+>[.M# M]:$_!@|v#
&@R);

ลองออนไลน์!

ตัวพิมพ์เล็ก

มีช่องว่างต่อท้าย 1 บรรทัดในแต่ละบรรทัดและขึ้นบรรทัดใหม่ที่ท้ายของเอาต์พุต



1

JavaScript, 102 94 ไบต์

บันทึก 2 ไบต์ด้วยNeil

f=
a=>[...Array(parseInt(a,36)-9)].map((a,b)=>''.padEnd(b).padEnd(b*3+1,(b+10).toString(36)+' '))

console.log(f('k').join`\n`)


1

เรติน่า 51 ไบต์

^.
$&$&
}T`L`_L`^.
.
$.`$* $&$.`$* ¶
+`(\w) \B
$&$1

ลองออนไลน์! คำอธิบาย:

^.
$&$&

ทำซ้ำตัวอักษร (ตัวแรก)

}T`L`_L`^.

หมุนกลับ 1 Aในตัวอักษรหรือลบมันถ้ามันเป็นที่ซ้ำกัน ทำซ้ำและหมุนจนกว่าเราจะทำซ้ำAซึ่งการลบจะยกเลิกการทำซ้ำและการวนซ้ำจะเสร็จสมบูรณ์

.
$.`$* $&$.`$* ¶

แทนที่ตัวอักษรแต่ละตัวด้วยเส้นที่มีตัวบุรองทั้งสองด้าน

+`(\w) \B
$&$1

แทรกตัวอักษรที่ซ้ำกันระหว่างช่องว่างภายในคู่ทั้งหมดทางด้านขวาของตัวอักษรที่มีอยู่



1

ถ่าน 15 ไบต์

F…·AS«P⪫E…@ιι ↘

ลองออนไลน์! การเชื่อมโยงคือการใช้รหัสเวอร์ชันอย่างละเอียด คำอธิบาย:

 …·AS           Inclusive character range from A to the input
F    «          Loop over each character
         …@ι    Exclusive range from @ to the current character
        E   ι   Replace each element with the current character
       ⪫        Join with spaces
      P         Print without moving the cursor.
              ↘ Move the cursor down and right.

หากการขยายเพิ่มพิเศษถูกกฎหมายสิ่งนี้จะทำงานได้ 14 ไบต์:

E…·?θ⁺× κ⪫× κι

ลองออนไลน์! การเชื่อมโยงคือการใช้รหัสเวอร์ชันอย่างละเอียด


1

Mathematica, 70 ไบต์

(T=Table)[""<>{" "~T~i,T[Alphabet[][[i]]<>" ",i]},{i,LetterNumber@#}]&

ตัวพิมพ์เล็ก

ส่งออกรายการ

thanx @ngenisis สำหรับการแก้ไข

สำหรับสถานที่เวอร์ชันColumn@ที่จุดเริ่มต้น


1

Excel VBA ขนาด 72 ไบต์

ฟังก์ชันหน้าต่าง VBE แบบไม่ระบุชื่อทันทีที่รับอินพุตจากเซลล์A1และเอาต์พุตไปยังหน้าต่างทันที VBE

For i=1To Asc([A1])-64:[B1]=i:?Space(i-1)[REPT(CHAR(B1+64)&" ",B1)]:Next

1

Pyth , 17 ไบต์

.e+*kd*+bdhk<GhxG

ลองที่นี่ (ฉบับพิมพ์สวย)


มันทำงานอย่างไร

  • hxG - ใช้ดัชนีของอินพุตในตัวอักษรตัวพิมพ์เล็ก

  • <G - จดจ้องตัวละครทุกตัวหลังจากป้อนจากตัวอักษร

  • .e- แผนที่ระบุ แผนที่มากกว่าตัวอักษรตัดกับดัชนีเป็นและตัวอักษรตามที่kb

  • *kd- ผนวกkช่องว่าง

  • +bd- b+ ช่องว่าง (ตัวอักษรปัจจุบัน + ช่องว่าง)

  • *...hk- ทำซ้ำk+1ครั้ง

  • +(...)(...) - เรียงต่อกัน


1
หนึ่งในสิ่งที่ฉันชอบเกี่ยวกับ Pyth คือการเขียนคำตอบและพบว่ามีคนเขียนคำตอบเดียวกันนั่นคืออักขระสำหรับตัวละคร มันฮิตที่ Python "มีคำตอบที่ดีที่สุด" เป็นจุดที่สมบูรณ์แบบ!
เดฟ

@pizzakingme ใช่ฉันสงสัยว่าฉันสามารถทำได้ดีกว่า
นาย Xcoder

การเพิ่มพื้นที่รู้สึกผิดฉันคิดว่าเป็นไปได้ที่จะดีกว่า
เดฟ

@pizzakingme ฉันสามารถรับได้.e+*kdjd*bhk<GhxG17 ไบต์เช่นกัน
Mr. Xcoder

16 ไบต์:.e+*kd*+bdhkhcGQ
เดฟ

1

C ++ (gcc) , 164 ไบต์

#include<iostream>
#define f for(int i=0;i<o-'`';i++)
using namespace std;int main(){char c;cin>>c;for(char o='a';o<=c;o++){f cout<<' ';f cout<<o<<' ';cout<<'\n';}}

ความพยายามครั้งแรกของฉันหลังจากที่ซุ่มซ่อนเป็นเวลานาน!

รหัส Ungolfed ด้านล่าง:

#include <iostream>

using namespace std;
#define f for (auto i = 0; i < output - '`'; i++)

int main()
{
  char input;

  cin >> input;

  for (char output = 'a'; output <= input; output++)
  {
    f cout << ' ';

    f cout << output << ' ';

    cout << endl;
  }
}

ลองออนไลน์!


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