วาดหมวกปาร์ตี้ตัวอักษร


22

งานของคุณคือการพิมพ์ข้อความที่แน่นอนนี้:

            z
            yz
           xyz
           wxyz
          vwxyz
          uvwxyz
         tuvwxyz
         stuvwxyz
        rstuvwxyz
        qrstuvwxyz
       pqrstuvwxyz
       opqrstuvwxyz
      nopqrstuvwxyz
      mnopqrstuvwxyz
     lmnopqrstuvwxyz
     klmnopqrstuvwxyz
    jklmnopqrstuvwxyz
    ijklmnopqrstuvwxyz
   hijklmnopqrstuvwxyz
   ghijklmnopqrstuvwxyz
  fghijklmnopqrstuvwxyz
  efghijklmnopqrstuvwxyz
 defghijklmnopqrstuvwxyz
 cdefghijklmnopqrstuvwxyz
bcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz

กรณีไม่สำคัญ

จำไว้ว่านี่คือดังนั้นโค้ดที่มีจำนวนไบต์น้อยที่สุดจะเป็นผู้ชนะ


2
ทำไมต้องลงคะแนน
Oliver Ni

19
ฉันสงสัยว่าบางคนคงเบื่อกับความท้าทาย KC แบบตัวอักษรศิลปะ ASC
xnor

เราสามารถทำได้ด้วยตัวพิมพ์ใหญ่หรือไม่?
Downgoat

7
อย่างจริงจังว่าท้าทายตัวอักษรอื่นได้หรือไม่
Erik the Outgolfer

2
ฉันสนุกกับการท้าทายตัวอักษรเหล่านี้ อันนี้ก็สามารถรีแบรนด์เป็นต้นคริสต์มาสได้อย่างง่ายดาย
Pete Arden

คำตอบ:


6

Cheddar, 50 45 42 37 ไบต์

25|>0=>i->print" "*(i/2|0)+(65+i)@"90

ตรงไปตรงมา แต่ใช้ประโยชน์จากไวยากรณ์ของเชดดาร์ที่หลากหลาย (ทั้งตัวเลขและตัวอักษร)

ลองออนไลน์!

คำอธิบาย

25 |> 0 =>    // Map range [0, 26) (i.e. [25, 0] reversed) over....
   i -> 
     print    // Prints in it's own line...
     " " * (i/2 |0) +     // Number of spaces is floor(n/2).
                          // `|0` for flooring is hack from JS
     (65 + i) @" 90       // Char code range is this

65เป็นรหัสถ่านสำหรับAและ90สำหรับA


1
Zคือไม่90 A
Mego

5

05AB1E , 15 13 ไบต์

A.svy12N;ï-ú,

ลองออนไลน์! (แตกต่างจากด้านบนเล็กน้อยเนื่องจากúยังไม่ได้ใช้ TIO)

คำอธิบาย

  1. กดตัวอักษร
  2. คำนวณคำต่อท้ายของตัวอักษร
  3. ต่อท้าย 12-index / 2 ช่องว่าง
  4. พิมพ์

4

Python 2, 70 ไบต์

พอร์ตจากคำตอบของEmigna , -2 ไบต์สำหรับการแทนที่-i-1ด้วย~i

for i in range(26):print' '*(12-i/2)+"abcdefghijklmnopqrstuvwxyz"[~i:]

ฉันค่อนข้างแน่ใจว่าการใช้แผนที่สามารถให้ตัวอักษรที่สั้นกว่ายกเว้นตัวพิมพ์เล็กที่อาจมีค่าสูงกว่า
Destructible Lemon

จริงๆแล้วฉันไม่แน่ใจอีกต่อไป ฉันคิดว่ามันจะใช้ไม่ได้กับเรื่องนี้ :( soz
Lemon Lemon ที่ถูกทำลาย

4

R, 67 66 59 ไบต์

แก้ไข: บันทึกสองไบต์ด้วย @rturnbull

for(i in 25:0)cat(rep(" ",i/2),letters[i:25+1],"\n",sep="")

การใช้ประโยชน์จากความจริงที่ว่าตัวเลขใด ๆ ที่ส่งผ่านไปยังrepฟังก์ชั่นจะถูกปัดเศษลงโดยอัตโนมัติเป็นจำนวนเต็มที่ใกล้เคียงที่สุด (เช่นrep("*",1.99) => "*") ซึ่งหมายความว่าลำดับที่แท้จริงที่ส่งผ่านคือfloor(13-1:26/2):

12 12 11 11 10 10  9  9  8  8  7  7  6  6  5  5  4  4  3  3  2  2  1  1  0  0

1
นี่สั้นกว่าความพยายามเมทริกซ์ของฉัน แทนที่14...-1ด้วย13?
JDL

@JDL อ่าใช่แน่นอน เศษเล็กเศษน้อยของการพยายามแนวทางอื่น
Billywob

2
หากคุณวนซ้ำ25:0แทนที่จะ1:26เปลี่ยนคุณสามารถเปลี่ยน13-i/2เป็นi/2และลดความซับซ้อน(27-i):26ให้i:25+1ประหยัดได้ 6 ไบต์
rturnbull

3

Pyth, 15 ไบต์

j_m+*/d2\ >GdUG

โปรแกรมที่พิมพ์ผลลัพธ์ไปยัง STDOUT

ลองออนไลน์

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

j_m+*/d2\ >GdUG  Program
             UG  Yield [1, 2, 3, 4, ..., 26]
  m              Map over the range with variable d:
          >Gd      Yield alphabet with first d-1 letters discarded
   +               Prepend
     /d2             d//2
    *   \            spaces
 _               Reverse
j                Join on newlines
                 Implicitly print

ลองใช้;แทน\
isaacg

3

Python 2, 52 ไบต์

n=26;s=''
while n:n-=1;s=chr(97+n)+s;print n/2*' '+s

สะสมสตริงsเพื่อพิมพ์และอัพเดตจำนวนของช่องว่างนำn/2หน้า การwhileวนซ้ำที่0เป็นลูปตัวเลขหายากกว่าการexecวนซ้ำ (53 ไบต์):

n=26;s=''
exec"n-=1;s=chr(97+n)+s;print n/2*' '+s;"*n

ยังเป็นทางเลือก 53- ไบต์:

s=''
exec"s=chr(122-len(s))+s;print s.center(26);"*26

3

JavaScript (ES6), 85 75 69 68 ไบต์

for(s=a='',x=36;--x>9;)s+=` `.repeat(x/2-5)+(a=x.toString(36)+a)+`
`

-1 ขอบคุณไบต์ @ l4m2


2
นี่ไม่ใช่ตัวอย่างข้อมูลแทนที่จะเป็นฟังก์ชั่นหรือโปรแกรมใช่ไหม
Neil

1
for(s=a='',x=36;--x>9;)s+=` `.repeat(x/2-5)+(a=x.toString(36)+a)+'#'1B สั้นกว่า
l4m2

@ l4m2 ยอดเยี่ยม!
darrylyeo

1
ความคิดที่ดีโดยใช้ฐาน 36! +1
ติตัส

2

Brain-Flakขนาด 244 ไบต์

((((((()()()()())){}{}){}){}()){})((((()()()){}){}()){}){(({}[()]<>)<({}<(<>({})<>)>){({}[()]<(({})[()])>)}({}({})<>[({})]<>(((()()()){}){}){}())((<>)<>{<({}[()])><>([{}]())<>}<>[{}]<>{}){({}[()]<((((()()()()){}){}){})>)}((()()()()()){})><>)}<>

ลองออนไลน์!


ควรอ่านได้อย่างที่ควรจะเป็น หากคุณต้องการฉันมีคำอธิบายแบบเต็ม:

push 122 (z): ((((((()()()()())){}{}){}){}()){})
push 26:      ((((()()()){}){}()){})
loop 26 times (i = 25..0): {
 (
  i--, push to b stack:({}[()]<>)
  <
   put 122 from a stack under i: ({}<(<>({})<>)>)
   i times push letter-1: {({}[()]<(({})[()])>)}
   replace top 0 with 26-i: ({}({})<>[({})]<>(((()()()){}){}){}())
   devide by two: ((<>)<>{<({}[()])><>([{}]())<>}<>[{}]<>{})
   add spaces: {({}[()]<((((()()()()){}){}){})>)}
   push 10 (\n): ((()()()()()){})
  >
  flip stack back: <>
 push i--: ) 
}
flip to results stack: <>

4
This should be readable enough as is.คุณกำลังพูดถึงBrain-Flakใช่ไหม?
Erik the Outgolfer

2

เยลลี่ , 15 13 ไบต์

-2 ไบต์ขอบคุณ @miles (เกิดเป็นโซ่ niladic ที่ฉันสงสัยว่ามีอยู่ แต่ไม่ได้ฟอร์ม)

ØaJ’H⁶ẋżṫJ$ṚY

TryItOnline!

อย่างไร?

ØaJ’H⁶ẋżṫJ$ṚY - Main link
Øa            - alphabet yield -> ['a', 'b', 'c', ..., 'y', 'z']
  J           -    range(length)      -> [1, 2, 3, ..., 25, 26]
   ’          -    decrement          -> [0, 1, 2, ..., 24, 25]
    H         -    halve              -> [0,.5  1, ..., 12, 12.5]
     ⁶        -    literal [' ']
      ẋ       -    repeat list        -> [[], [], [' '], ..., 12x' ', 12x' ']
          $   - last two links as a monad
         J    -     range(length)     -> [1, 2, 3, ..., 25, 26]
        ṫ     -     tail (vectorises) -> [['a'-'z'], ['b'-'z'], ..., ['y','z'], ['z']]
       ż      - zip
              -> [[[],['a'-'z']], [[],['b'-'z']], ..., [12x' ',['y','z']], [12x' ',['z]]]
           Ṛ  - reverse whole array
            Y - join with line feeds (implicit print)

ฉันพบวิธีการสร้างโซ่ niladic เริ่มต้นด้วยตัวอักษรØaJ’H⁶ẋżṫJ$ṚYที่ช่วยประหยัด 2 ไบต์
ไมล์

คุณคิดว่าคำอธิบายนั้นถูกต้องหรือไม่?
Jonathan Allan

1
ใช่แค่คิดว่ามันเป็นห่วงโซ่ monadic ที่มีอาร์กิวเมนต์เดียวเป็นตัวอักษร
ไมล์



1

Turtlèd , 70 68 bytes

สังเกตพื้นที่ต่อท้าย

#abcdefghijklmnopqrstuvwxyz#' -{ -{ +.r_}' l[ l-]d,(*@!' r)(!@*)_}' 

ลองออนไลน์!

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

#abcdefghijklmnopqrstuvwxyz#              Set string var to this value
                            ' -           write space on first grid cell, string pointer-=1
                               {                                    } While cell is space
                                 -                 decrement string pointer
                                  {     }    While cell is space
                                    +.       increment string pointer, write pointed char
                                      r      move right
                                       _     write non-space if pointed char is last char

                                         '[space]   write space on cell
                                           l        move left
                                            [ l-]   move left, pointer-- until cell's space
                                                 d, move down, write character var \
                                                                           (initially *)

                                                   (*     ) if cell is *
                                                     @!     set char var=!
                                                       ' r  write space over *, move right

                                                           (!    ) if cell is !
                                                             @*    set char var=*
                                                               '[space] write space over !

                                                                 _ (explanation below)
                                               write (*|!) if pointed char is last char

                                                                   '[space]    Write space

คำอธิบายที่มนุษย์อ่านได้ (?):

มันใช้สตริง var เพื่อบรรจุตัวอักษร การวนซ้ำแต่ละครั้งจะลดดัชนีหนึ่งจนกว่ามันจะล้อมรอบและหยุดหลังจากที่ไปถึงบรรทัดสุดท้าย สำหรับการเยื้องสลับมันใช้ถ่าน var การวนซ้ำแต่ละครั้งจะตรวจสอบ char var และพลิกมัน หากเป็น * มันจะเลื่อนไปทางขวาดังนั้นอักขระตัวแรกจะจัดตำแหน่งมิฉะนั้นจะไม่ปรับดังนั้นอักขระตัวสุดท้ายจึงจัดตำแหน่ง


1

Perl, 44 ไบต์

นี้เป็นท่าเรือของ @ XNOR คำตอบ

$n=26;say$"x($n/2),$@=chr(97+$n).$@while$n--

ต้องการ-E(หรือ-M5.010) เพื่อเรียกใช้:

perl -E '$n=26;say$"x($n/2),$@=chr(97+$n).$@while$n--';

1

PHP, 71 ไบต์

for(;++$i<27;)echo str_pad(substr(join(range(a,z)),-$i),26," ",2)."\n";

1
(26-$i)/213-$i/2
จัดการ

มันจะเกิดข้อผิดพลาดหรือไม่ถ้าคุณลบโคลอนสุดท้าย และจะดีถ้าคุณให้ลิงก์ไปยังเว็บไซต์ออนไลน์พร้อมตัวอย่างเช่น sandbox.onlinephpfunctions.com
RedClover

1

Java 7128 127 ไบต์

บันทึกแล้ว 1 ไบต์ขอบคุณเควิน

String c(int n,String s,char v,String d){String c="";for(int j=0;j++<(n-1)/2;c+=" ");return n>0?c(--n,s=v+s,--v,d+c+s+"\n"):d;}

ungolfed

  class A {

public static void main(String[] args) {
System.out.print(c(26, "", (char)122, ""));
}
static String c(int n, String s, char v, String d){

    String c = "";

    for (int j = 0; j++ < (n - 1)/2; c += " ");

    return n > 0 ? c(--n, s = v + s, --v, d + c + s + "\n" ) : d;
}
}

โดยไม่ผ่าน 122 ในฟังก์ชั่น

132 ไบต์

String c(String s,int n,String d){String c="";int v=96,j=0;for(;j++<(n-1)/2;c+=" ");return n>0?c(s=(char)(v+n--)+s,n,d+c+s+"\n"):d;}

ungolfed

  class A{

public static void main(String[] args) {
System.out.print(c("",26,""));

}
static String c(String s, int n, String d) {
    String c = "";
    int v = 96,j=0;
    for (; j++ < (n - 1)/2; c += " ");
    return n > 0 ? c(s = ( char) (v + n--) + s, n, (d + c + s + "\n")) : d;
     }
  }

1
คุณสามารถลบที่= d+=c+s+"\n"นอกจากนี้คุณอาจต้องการฟอร์แมตโค้ดที่ไม่ได้ลงมือทำด้วยการเยื้อง ฉันสังเกตเห็นว่ามีคำตอบอื่น ๆ ของคุณเช่นกัน :)
Kevin Cruijssen

1
โอ๊ะ! ฉันทำผิดพลาดอีกครั้ง ...... ok @KevinCruijssen ฉันอยู่บนนั้น
Numberknot

คุณไม่สามารถแทนที่s=v+sการสอบถามซ้ำด้วยs+=vหรือไม่
Roman Gräf

ไม่เนื่องจากรูปแบบตัวอักษรอยู่ด้านหลัง
Numberknot

1

Ruby, 64 ไบต์

(0..26).each{|x|puts' '*(12-x/2)+('a'..'z').to_a[~x..-1].join()}

ความคิดเห็นเล็ก ๆ น้อย ๆ : คุณไม่จำเป็นต้องใส่วงเล็บหลังการjoin โทรeachแทนที่จะmapไม่จำเป็นเพราะเราไม่สนใจว่าเราจะกลับมาคุณสามารถโทรlastเป็นช่วง
Lee W

แทนที่จะ(0..26).mapพยายาม27.times; แทน('a'..'z').to_a, [*?a..?z]; และแทนที่จะ.join, *"".
จอร์แดน


1

REXX, 52 ไบต์

do i=1 to 26
  say centre(right(xrange(a,z),i),26)
  end

เอาท์พุท:

            Z             
            YZ            
           XYZ            
           WXYZ           
          VWXYZ           
          UVWXYZ          
         TUVWXYZ          
         STUVWXYZ         
        RSTUVWXYZ         
        QRSTUVWXYZ        
       PQRSTUVWXYZ        
       OPQRSTUVWXYZ       
      NOPQRSTUVWXYZ       
      MNOPQRSTUVWXYZ      
     LMNOPQRSTUVWXYZ      
     KLMNOPQRSTUVWXYZ     
    JKLMNOPQRSTUVWXYZ     
    IJKLMNOPQRSTUVWXYZ    
   HIJKLMNOPQRSTUVWXYZ    
   GHIJKLMNOPQRSTUVWXYZ   
  FGHIJKLMNOPQRSTUVWXYZ   
  EFGHIJKLMNOPQRSTUVWXYZ  
 DEFGHIJKLMNOPQRSTUVWXYZ  
 CDEFGHIJKLMNOPQRSTUVWXYZ 
BCDEFGHIJKLMNOPQRSTUVWXYZ 
ABCDEFGHIJKLMNOPQRSTUVWXYZ

1

เป็นกลุ่ม 25 Keystrokes

:h<_␍jjYZZPqqPxYPr Yq12@q

ที่ไหน␍เป็นปุ่ม Enter <cr>บางครั้งก็เป็น

คำอธิบาย

:h<_␍jjYZZ                 " get a-z
          P                " initialize by pasting
           qq              " start record macro @q
             Px            " paste and remove the 1st char
               YPr␣        " yank and paste and replace 1st char with space
                   Y       " yank the whole line again
                    q      " end recording
                     12@q  " call macro 12 @q times

ฉันยังใหม่กับ ViM - ฉันเริ่มในเดือนพฤศจิกายน สงสัยว่ามีวิธีที่จะรวมการเริ่มต้นPกับหนึ่งในแมโคร

วิธี "ที่ถูกต้อง" ในการทดสอบลำดับ ViM ของกอล์ฟคืออะไร \vi -u /dev/nullผมทดสอบด้วย อย่างไรก็ตามใน VM ยัง:h<_␍ใช้งานไม่ได้ ก็ไม่แน่ใจเหมือนกันว่าทำไม ViM ของฉันจะย้ายไปที่อักขระไม่ใช่ช่องว่างตัวแรกฮ่าฮ่า

PS ก่อนที่ฉันจะย้ายไปใช้ OS X ฉันเล่นกอล์ฟใน Hexagony ด้วยเครื่องมือที่ยอดเยี่ยม ... ตอนนี้ใน OS XI ไม่ได้ทำไวน์และไม่ใช้เครื่องมือที่ยอดเยี่ยมสำหรับคำอธิบายและการดีบัก ดังนั้นเริ่มการเดินทางของฉันกับ ViM!



1

Tcl , 92 ไบต์

set a {}
time {set a [format %c [expr 123-[incr i]]]$a;puts [format %[expr 13+$i/2]s $a]} 26

ลองออนไลน์!

tcl, 94

set a {}
set i 123
time {set a [format %c [incr i -1]]$a;puts [format %[expr 74-$i/2]s $a]} 26

การสาธิต

ในระหว่างกระบวนการฉันบังเอิญได้หมวกที่เป็นตัวเอียง:

tcl, 94

set a {}
set i 123
time {set a [format %c [incr i -1]]$a;puts [format %[expr $i/2-24]s $a]} 26

การสาธิต


tcl, 101

set a {}
set i 123
while \$i>97 {set a [format %c [incr i -1]]$a;puts [format %[expr ($i-48)/2]s $a]}

การสาธิต

ในระหว่างกระบวนการฉันบังเอิญได้หมวกที่เป็นตัวเอียง:

tcl, 99

set a {}
set i 123
while \$i>97 {set a [format %c [incr i -1]]$a;puts [format %[expr $i/2-24]s $a]}

การสาธิต



@ ASCII ขอบคุณอย่างเดียว!
sergiol

1

เสียงกระเพื่อมสามัญ, SBCL, 83 82 ไบต์

(dotimes(i 27)(format t"~26:@<~a~>
"(subseq"ABCDEFGHIJKLMNOPQRSTUVWXYZ"(- 26 i))))

คำอธิบาย

(dotimes(i 27) ; loop from i=0 to i=26
(format t"~26:@<~a~>
"(subseq"ABCDEFGHIJKLMNOPQRSTUVWXYZ"(- 26 i))))
;print out part of alphabet starting from character number 26-i (counting from zero)
;using justification (~26:@<~a~>) to center with weight 26 characters

-1 ใช้ sugestion โดย ASCII- เท่านั้นใช้<enter>แทน~%



1

T-SQL, 107 ไบต์

DECLARE @t VARCHAR(99)=SPACE(13),@ INT=27a:SET @t=STUFF(@t,@/2,@%2,CHAR(@+95))PRINT @t
SET @-=1IF @>1GOTO a

ปรับเปลี่ยนสตริงแต่ละบรรทัดโดยการอัดในตัวอักษรที่ถูกต้องในตำแหน่งที่ถูกต้องโดยใช้ STUFF()fuction จัดรูปแบบ:

DECLARE @t VARCHAR(99)=SPACE(13), @ INT=27
a:
    SET @t=STUFF(@t,@/2,@%2,CHAR(@+95))
    PRINT @t
    SET @-=1
IF @>1 GOTO a

@/2ใช้การหารจำนวนเต็ม (ไม่มีส่วนที่เหลือ) เพื่อกำหนดตำแหน่งที่จะแทรกตัวอักษร @%2เป็นMODULOฟังก์ชั่นและพลิกระหว่าง 0 (แทรกตัวอักษร) และ 1 (เขียนทับช่องว่าง)

หากคุณต้องการตัวอักษรตัวใหญ่ให้ใช้CHAR(@+63)แทน (ไม่เปลี่ยนจำนวนไบต์ของเรา)




0

Haskell (แลมบ์บ็อต), 73 ไบต์

unlines[([1..div(26-length x)2]>>" ")++x|x<-reverse.init$tails['a'..'z']]

ความยาวเท่ากัน:

do x<-reverse.init$tails['a'..'z'];([1..div(26-length x)2]>>" ")++x++"\n"

ฉันใช้init.tailsหรือtail.initsย้อนกลับไปข้างหน้าได้ในทุกความท้าทาย ฉันหวังว่าพวกเขาจะเพิ่มไปยังโหมโรงแล้ว



0

Groovy ขนาด 53 ไบต์

('z'..'a').each{println((it..'z').join().center(26))}

เอาท์พุท:

            z             
            yz            
           xyz            
           wxyz           
          vwxyz           
          uvwxyz          
         tuvwxyz          
         stuvwxyz         
        rstuvwxyz         
        qrstuvwxyz        
       pqrstuvwxyz        
       opqrstuvwxyz       
      nopqrstuvwxyz       
      mnopqrstuvwxyz      
     lmnopqrstuvwxyz      
     klmnopqrstuvwxyz     
    jklmnopqrstuvwxyz     
    ijklmnopqrstuvwxyz    
   hijklmnopqrstuvwxyz    
   ghijklmnopqrstuvwxyz   
  fghijklmnopqrstuvwxyz   
  efghijklmnopqrstuvwxyz  
 defghijklmnopqrstuvwxyz  
 cdefghijklmnopqrstuvwxyz 
bcdefghijklmnopqrstuvwxyz 
abcdefghijklmnopqrstuvwxyz

0

QBIC , 57 ไบต์

[25,0,-1|Y=Z[1,a/2|Y=Y+@ |]X=Z[a,25|X=X+$CHR$(65+|c)]?Y+X

อันนี้ใช้งานได้ดีกับ QBIC 'FOR loops คำอธิบาย (ของรุ่นก่อนหน้า - ใช้หลักการเดียวกัน):

[26,1,-1|          Loops from 26 to 1, decrementing 'a'
                   'a' is used to determine the number of spaces per line and the last letter we want to print
Y=Z                Z is always an empty string in this program, 
                   Y will hold the spaces we need to center this line
[1,a/2|Y=Y+@ |]    Add a space to Y equal to half the value of 'a', giving us a center alignment
X=Z                X holds the characters we need on this line, reset it
[a,26|             FOR c = a to 26 --> loop over the last part of the alphabet
X=X+$CHR$(64+|c)]  Convert c+64 to ASCII and append
?Y+X               Print the spaces and the letters

<outer FOR loop is closed by QBIC>

เอาท์พุท:

            Z
            YZ
           XYZ
           WXYZ
          VWXYZ
          UVWXYZ
         TUVWXYZ
         STUVWXYZ
        RSTUVWXYZ
        QRSTUVWXYZ
       PQRSTUVWXYZ
       OPQRSTUVWXYZ
      NOPQRSTUVWXYZ
      MNOPQRSTUVWXYZ
     LMNOPQRSTUVWXYZ
     KLMNOPQRSTUVWXYZ
    JKLMNOPQRSTUVWXYZ
    IJKLMNOPQRSTUVWXYZ
   HIJKLMNOPQRSTUVWXYZ
   GHIJKLMNOPQRSTUVWXYZ
  FGHIJKLMNOPQRSTUVWXYZ
  EFGHIJKLMNOPQRSTUVWXYZ
 DEFGHIJKLMNOPQRSTUVWXYZ
 CDEFGHIJKLMNOPQRSTUVWXYZ
BCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ

ไม่ตรงกับ OP
Magic Octopus Urn

@carusocomputing มันทำตอนนี้
steenbergh

0

แร็กเก็ต 137 ไบต์

(for((n(range 122 96 -1)))(for((i(floor(/(- n 97)2))))(display #\space))
(for((i(range n 123)))(display(integer->char i)))(displayln ""))

Ungolfed:

(define (f)
  (for ((n (range 122 96 -1)))
       (for ((i (floor(/(- n 97)2))))
         (display #\space))
       (for ((i (range n 123)))
         (display (integer->char i)))
    (displayln "")))

การทดสอบ:

(f)

เอาท์พุท:

            z
            yz
           xyz
           wxyz
          vwxyz
          uvwxyz
         tuvwxyz
         stuvwxyz
        rstuvwxyz
        qrstuvwxyz
       pqrstuvwxyz
       opqrstuvwxyz
      nopqrstuvwxyz
      mnopqrstuvwxyz
     lmnopqrstuvwxyz
     klmnopqrstuvwxyz
    jklmnopqrstuvwxyz
    ijklmnopqrstuvwxyz
   hijklmnopqrstuvwxyz
   ghijklmnopqrstuvwxyz
  fghijklmnopqrstuvwxyz
  efghijklmnopqrstuvwxyz
 defghijklmnopqrstuvwxyz
 cdefghijklmnopqrstuvwxyz
bcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.