พิมพ์เครื่องหมายดอกจัน 10 คูณ 10


83

พื้นหลัง

นี่เป็นตัวอย่างหนังสือเรียนมาตรฐานสำหรับสาธิตลูป

นี่เป็นหนึ่งในโปรแกรมแรกที่ฉันเรียนรู้เมื่อฉันเริ่มเรียนรู้การเขียนโปรแกรม ~ 10 ปีก่อน

งาน

คุณจะต้องพิมพ์ข้อความที่แน่นอนนี้:

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

รายละเอียด

  • คุณอาจมีการขึ้นบรรทัดใหม่พิเศษ
  • คุณอาจมีช่องว่างต่อท้ายพิเศษ (U + 0020) ในตอนท้ายของแต่ละบรรทัดรวมถึงการขึ้นบรรทัดใหม่พิเศษ

เกณฑ์การให้คะแนน

นี่คือรหัสกอล์ฟคำตอบที่สั้นที่สุดในการชนะไบต์

ลีดเดอร์บอร์ด

นี่คือ Stack Snippet เพื่อสร้างทั้งกระดานผู้นำปกติและภาพรวมของผู้ชนะตามภาษา


2
@DylanMeeus "คุณต้องพิมพ์ข้อความที่แน่นอนนี้:"
Leun Nun

13
@DylanMeeus ตั้งแต่นั้นจะทำอย่างไรกับเครื่องมือ dev ที่ซ่อนเอาต์พุตคอนโซลซ้ำและไม่ได้เป็นของคอนโซล JavaScript ทั้งหมดและไม่ได้อยู่ในข้อกำหนด JavaScript - เช่นเดียวกับคุณลักษณะที่สามารถปิดได้ - ฉันคิดว่ามัน ควรเป็นที่ยอมรับ ไม่ใช่ทุกเบราว์เซอร์ที่จะยุบได้เช่นนั้น
Trotski94

6
@ ตัวอย่างกระดานผู้นำลีลาของคุณ!
dkudriavtsev

2
หนึ่งในสิ่งที่น่าสนใจที่สุดเกี่ยวกับการท้าทายนี้คือขึ้นอยู่กับภาษาของคุณ ********** อาจสั้นกว่านี้ได้ ทำให้ฉันสงสัยว่าเมื่อใดจะดีกว่าสำหรับภาษาที่กำหนดให้สลับระหว่าง 1 หรือ 2 ลูป
dwana

1
คุณบอกว่าต่อท้ายบรรทัดใหม่เป็นที่ยอมรับ ขึ้นบรรทัดใหม่เป็นที่ยอมรับเช่นกัน?
Albert Renshaw

คำตอบ:



70

C (gcc), 41 39 ไบต์

main(i){for(;++i<puts("**********"););}

รุ่น c อะไร?
Zaibis

@Zaibis ทำงานได้ดีใน GCC: coliru.stacked-crooked.com/a/848cb22a00c35c29
orlp

4
ดูดีโอดี 'ANSI C.
YSC

4
main(i){while(11-i++)puts("**********");}เป็นทางเลือกความยาวเท่ากัน
YSC

6
ฉันชอบการใช้ผลตอบแทนที่ชาญฉลาดจากputs()(และค่าเริ่มต้นของi)
Toby Speight

65

Bash + coreutils, 19 ไบต์

ฉันชอบที่จะทำซ้ำสิ่งต่าง ๆ ใน Bash โดยใช้ 'ใช่'

yes **********|head

ฉันบันทึก 2 ไบต์ตามคำแนะนำของ @ Neil แต่เมื่อไดเรกทอรีที่คุณใช้คำสั่งนี้ไม่เพียง แต่มีไฟล์ที่ขึ้นต้นด้วย '.' จุดที่คุณต้องใส่ดาว*ด้วย"ด้วย

Bash + coreutils, 21 ไบต์

yes "**********"|head

2
yesความคิดที่ดีที่จะใช้ เรามักจะติดป้ายโซลูชันเช่น "Bash + coreutils"
จัดการ

8
ดีที่ 10 headบรรทัดบังเอิญเกิดขึ้นจะเริ่มต้นสำหรับ
บาดเจ็บทางดิจิทัล

3
คุณสามารถบันทึกสองไบต์โดยกำหนดให้ไฟล์ใด ๆ ในไดเรกทอรีปัจจุบันต้องขึ้นต้นด้วย.?
Neil

@ Neil ความคิดเห็นของคุณเป็นคำตอบของฉันหรือไม่ ถ้าเป็นเช่นนั้นฉันไม่เข้าใจ :)
CousinCocaine

1
คุณสามารถเขียนได้yes \**********|headโดยไม่ จำกัด ไฟล์
Florian F

50

เป็นกลุ่ม, 13 8 ไบต์

บันทึก 5 ไบต์ด้วย @Lynn

qqi*␛9.o␛q9@q 

10i*␛Y9p

10i*␛แทรก 10 ครั้ง*และY9pคัดลอกบรรทัดแล้ววาง 9 ครั้ง


8
10i*♥Y9pโรงงาน
ลินน์

1
นั่นมันบ้า vi
nbubis

ฉันคิดว่าคุณสามารถนับจำนวนการกดแป้นแทนไบต์สำหรับโปรแกรมแก้ไขข้อความซึ่งหมายความว่า <ESC> จะสั้นลง
Addison

1
ทำไม♥และไม่ใช่␛
CL

1
ฉันจะใช้yy9pตัวเอง แต่ใช้งานตัวพิมพ์ใหญ่ในการบันทึกตัวละคร!
Joe Z.

49

Pyth, 6 ไบต์

VT*T\*

Tคือ 10 ใน Pyth Vabดำเนินการคำสั่งb aเวลา\*เป็นค่าคงที่อักขระดอกจันและการคูณ ( *) สตริงและจำนวนเต็มซ้ำสตริงนั้น n ครั้ง การพิมพ์โดยนัยของ Pyth Vหมายถึงการพิมพ์10 บรรทัด


40

Hexagony, 37 35 34 วันที่ 31

10"+}(=${";<$<1}42/.0@_=<>\;>(_

ขยาย:

   1 0 " +
  } ( = $ {
 " ; < $ < 1
} 4 2 / . 0 @
 _ = < > \ ;
  > ( _ . .
   . . . .

ลองออนไลน์

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

คำอธิบาย:

โปรแกรมนี้ประกอบด้วยสามส่วนหลัก: การเริ่มต้นของหน่วยความจำ, ลูปที่พิมพ์เครื่องหมายดอกจันสิบและลูปที่พิมพ์ขึ้นบรรทัดใหม่ ลูปที่พิมพ์บรรทัดใหม่ยังมีลูปที่พิมพ์เครื่องหมายดอกจัน

ก่อนอื่นโค้ดจะรันการเริ่มต้นหน่วยความจำเชิงเส้นทั้งหมด รหัสทำงานเป็น: 10"+}42. นี่เป็นการตั้งค่าหน่วยความจำของขอบใกล้เคียงให้มีลักษณะดังนี้:

10 \ / 10
    |
   42

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

ต่อไปเราจะเริ่มต้นห่วงการพิมพ์ดอกจัน รหัสจะมีลักษณะเป็น;".._(เส้นตรง: ซึ่งจะพิมพ์เครื่องหมายดอกจันเลื่อนตัวชี้หน่วยความจำไปทางซ้ายและไปทางซ้ายและลดค่าลงในที่สุด หลังจากการวนซ้ำหนึ่งครั้งหน่วยความจำจะมีลักษณะดังนี้:

10 \ / 9
    |
   42

แล้วเราตีสภาพห่วง: >ด้านล่างซ้ายสุด ถ้าขอบที่เราเพิ่ง decremented ยังคงเป็นเชิงบวกที่เราตีกลับไปรอบ ๆ และดำเนินการ{ที่จะย้ายเรากลับไปยัง 42 แล้วเราตี$และกลับไปที่จุดเริ่มต้นของห่วงพิมพ์ที่โดยการกระโดดข้าม; <หากค่าเป็นศูนย์เราจะมุ่งหน้าไปยังวงอื่น

วงรอบนอกเริ่มต้นด้วยการรีเซ็ตขอบหน่วยความจำที่เป็นศูนย์เมื่อเร็ว ๆ นี้เป็นสิบ (นี่คือ10ในรหัสกำลังจะไปทางตะวันตกเฉียงใต้) จากนั้นเราพิมพ์สิบนี้เป็นอักขระ ASCII ซึ่งเป็นบรรทัดใหม่ ต่อไปเราจะย้ายไปยังขอบของหน่วยความจำอื่น ๆ และพร่องมันด้วย{(แล้วรันปริมาณสิ่งที่พวงของ noops =${_=นี้: ทีนี้หลังจากวนซ้ำหนึ่งครั้งของหน่วยความจำนี้จะมีลักษณะดังนี้:

 9 \ / 10
    |
   42

เวลานี้หน่วยความจำหันออกจากขอบที่จัดเก็บเก้าในแผนภาพด้านบน ต่อไปเราจะดำเนินการ<ซึ่งทำหน้าที่เป็นเงื่อนไขวงสำหรับวงรอบนอก หากค่าไม่ใช่ศูนย์เราจะกระเด้งออกมาจากมิเรอร์บางส่วนจากนั้นเริ่มดำเนินการคำแนะนำที่มีความหมายอีกครั้งหลังจากเข้าสู่ด้านบนของรูปหกเหลี่ยมที่"ทิศตะวันตกเฉียงใต้ที่กำลังเคลื่อนที่ นี่ทำให้เราขยับถอยหลังและไปทางซ้ายเข้าสู่ 42 อีกครั้ง แต่หันเข้าด้านใน จากนั้นจึง=พลิกทิศทางของเรารีเซ็ตสถานะให้ถูกต้องเพื่อเริ่มวงภายในอีกครั้ง หากขอบถูกตั้งค่าเป็นศูนย์ตัวชี้คำสั่งจะออกไปผจญภัยเล็กน้อยซึ่งไม่ทำอะไรเลยจนกว่าจะออกจากโปรแกรม

การผจญภัยเริ่มต้นจากตัวชี้คำสั่งที่ระบายตะวันออกเฉียงเหนือโดยไม่สนใจความปลอดภัยของทิศทางสำคัญ ๆ มันไม่สนใจกระจกที่ปรับให้เข้ากับความ diretion (/ ) และกระโดดออกมาจาก trampoline อย่างกล้าหาญ ($) หลีกเลี่ยงกับดักแห่งความตายของแทรมโพลีนที่เหมือนกันทั้งหมด จ้องมองที่ความว่างเปล่าของขอบหกเหลี่ยมที่ไม่มีการกำหนดค่าตัวชี้โดยไม่สะดุดสักครู่เพิ่มสองขอบที่ว่างเปล่าที่มันหันเข้าหากันการตั้งค่าขอบปัจจุบันเป็นผลรวมของพวกเขา: 0 (ขอบจริง ๆ แล้วเป็นศูนย์ล่วงหน้า เชื่อว่านี่เป็นสิ่งสำคัญทีเดียว) เนื่องจากขอบเป็นศูนย์ตัวชี้จะเลี้ยวซ้ายที่แยกในถนนเดินเข้าไปในป่าลึกลับ (จากรูปหกเหลี่ยม) ที่นั่นจะพบว่าตัวเองไม่รู้สึกตัวขยับไปข้างหน้าและถอยหลังไปข้างหน้าและข้างหน้าจนกว่ามันจะเกิดขึ้นในสถานที่เดียวกันในความทรงจำในขณะที่มันเริ่ม เมื่อคิดว่าปัญหาต้องเป็นไปตามที่ขอบปัจจุบันถูกตั้งค่าเป็นศูนย์ครั้งที่แล้ว1เข้าสู่ขอบปัจจุบัน จากนั้นตัวชี้ที่มีเกียรติจะตรวจสอบเส้นทางอื่นซึ่งวางกับ ... กับดัก! ขอบปัจจุบันลดลงและตั้งค่ากลับเป็นศูนย์! ตัวชี้ซึ่งทำให้งงงวยจากเหตุการณ์ที่น่าตกใจทำให้สะดุดกลับเข้าสู่กับดักโดยตั้งค่าขอบปัจจุบันเป็นลบ โกรธตัวชี้พยายามที่จะกลับไปที่ป่าที่น่าพอใจเปรียบเทียบเพียงเพื่อสังเกตว่าตั้งแต่ขอบปัจจุบันไม่เป็นบวกเส้นทางยังได้เลื่อนอีกครั้งและตัวชี้พบว่าตัวเองกำลังเดินเข้าไปในถ้ำ และโดยถ้ำฉันหมายถึงปากของหนอนหกเหลี่ยมขนาดยักษ์ ทำอะไรไม่ถูกตัวชี้สาปแช่งความสัมพันธ์ทางเพศกับลมหายใจที่กำลังจะตาย นอกจากนี้โปรแกรมจะสิ้นสุดลง


ฉันหวังว่าหนอนจะโอเคเมื่อกลืนตัวชี้ สิ่งเหล่านั้นสามารถทำร้าย
Joffan

3
+1 สำหรับการเขียนที่น่าสนใจที่สุด - เพียงอย่างเดียว - คำอธิบาย Hexagony ที่ฉันเคยอ่าน ฉันรู้สึกเครียดเมื่อขอบลดน้อยลง!
โจ

37

Emacs, 10 8 การกดแป้น

F3 C-1 0 * ENTER F4 C-9 F4

การอธิบาย

F3             Starts a macro recording
C-1 0 *        Apply 10 times command '*': prints 10 asterix'
ENTER          Insert new line
F4             Stops the macro record
C-9 F4         Apply 9 times the macro

ขอขอบคุณที่ฌอนสำหรับการบันทึกการกดแป้นพิมพ์สองบอกจะแทนที่ด้วยC-udigitC-digit


9
+1, ฉัน
อัปโหลด

1
ถ้าC-uนับเป็นเพียงหนึ่งในการกดแป้นพิมพ์แล้วคุณสามารถโกนสองจังหวะโดยการพิมพ์C-1 C-0(หรือM-1 M-0) แทนC-u 1 0และแทนC-9 C-u 9
ฌอน

15
+1 เพราะคุณต้องทนทุกข์จากการใช้ emacs เพื่อเขียนสิ่งนี้
addison

1
อีกทางเลือกหนึ่ง (ไม่บันทึกอะไรเลย) การทำซ้ำบรรทัดสามารถทำได้ภายในแมโคร:F3 C-1 0 * ENTER C-1 0 F4
Jonathan Carroll

@JonathanCarroll ใช่มันจะประหยัดไบต์ถ้าเราจะพิมพ์ได้มากกว่า 10 บรรทัด;)
YSC

29

เยลลี่ขนาด 7 ไบต์

”*x⁵Ṅ9¡

เกิดอะไรขึ้น?

”*x⁵Ṅ9¡  - No arguments
”*       - character literal, *
  x      - multiply (dyadic operation)
   ⁵     - integer literal, 10 (we have now constructed the string '**********')
    Ṅ    - Print & linefeed (monadic operation)
     9   - integer literal, 9
      ¡  - Repeat n times (n is 9 as the first Ṅ is not a repeat)

ทดสอบบนtryitonline


9
Ṅ9¡ผมชอบ
เดนนิส

รายการรุ่น: ”*ẋ⁵Wẋ⁵.
Erik the Outgolfer

@EriktheGolfer คุณต้องใช้Yในตอนท้ายเพื่อ "พิมพ์ข้อความที่ถูกต้องนี้"
Jonathan Allan

@JonathanAllan มันเป็นรายการของตัวเองแม้ว่า มันไม่ได้หมายถึง "พิมพ์ข้อความที่ถูกต้องนี้" แต่ถ้าคุณต้องการใช้มันคุณจะใช้มัน
Erik the Outgolfer

26

PowerShell, 14 12 ไบต์

,('*'*10)*10

สร้างสตริงของดอกจันที่มีความยาว10โดยใช้การคูณสตริง สรุปว่าอยู่ใน parens และดึงข้อมูลนั้นลงในเครื่องหมายจุลภาค - ตัวดำเนินการเพื่อสร้างอาร์เรย์ เราใช้การคูณอาร์เรย์เพื่อสร้างอาร์เรย์ 10 องค์ประกอบที่ประกอบด้วยองค์ประกอบนั้น (เช่นอาร์เรย์ 10 องค์ประกอบของสตริงดอกจัน) สิ่งที่เหลืออยู่บนWrite-Outputไพพ์ไลน์และเอาต์พุตเป็นค่าปริยาย (เนื่องจากค่าเริ่มต้นสำหรับอาเรย์นั้นถูกคั่นด้วยการขึ้นบรรทัดใหม่เราจะได้สิ่งนั้นฟรี - ขอบคุณ @Joey สำหรับการชี้แจง)

เก่ากว่า 14 ไบต์

0..9|%{'*'*10}

โปรแกรมเต็มรูปแบบ ลูปจาก0การ9ผ่านห่วงForEach-Object |%{...}แต่ละซ้ำเราจะใช้สตริงคูณเพื่อสร้าง length- สตริง10 *สตริงผลลัพธ์เหล่านั้นจะถูกทิ้งไว้ที่Write-Outputไพพ์ไลน์และเอาต์พุตในตอนท้ายจะมีความหมายโดยปริยาย (เนื่องจากค่าเริ่มต้นสำหรับอาเรย์นั้นถูกคั่นด้วยการขึ้นบรรทัดใหม่เราจะได้สิ่งนั้นฟรี - ขอบคุณ @Joey สำหรับการชี้แจง)


5
ฉันชอบมันเพราะ PowerShell สามารถได้รับ verbose ดังนั้น กระนั้นก็ดีและสั้น
dwana

ในทางเทคนิคแล้วอาเรย์จะไม่ถูกส่งผ่าน a ToStringมันเป็นองค์ประกอบที่ไม่ผ่านการควบคุมและส่งผ่านไปยัง Write-Output ในบริบทที่อาเรย์ถูกแปลงเป็นสตริงคุณจะได้รับองค์ประกอบของช่องว่างคั่น
Joey

@ โจอี้ยุติธรรมนั่นเป็นวิธีที่ดีกว่าที่จะกล่าว ฉันจะแก้ไขข้อความ (และแม่แบบคำตอบของฉัน ;-))
AdmBorkBork

1
ฉันอาจจะลำเอียงที่นี่เพราะฉันเกี่ยวข้องกับการใช้งาน PowerShell ดังนั้นฉันจึงต้องเรียนรู้สิ่งที่เกิดขึ้นจริงภายในล่าม;)
โจอี้

25

V , 7 ไบต์

10é*10Ä

ลองออนไลน์!

เกี่ยวกับตรงไปตรงมาเป็นคำตอบได้

คำอธิบาย:

10      "10 times:
  é*    "insert an asterisk
    10Ä "make 10 copies of the current line

รุ่นที่ไม่ใช่การแข่งขัน (5 ไบต์):

10O±*

คำอธิบาย:

10O     " Insert the following on the next ten lines:
   ±    "   10 copies of
    *   "   an asterisk

สิ่งนี้ไม่ทำงานเมื่อมีการโพสต์ความท้าทายเนื่องจากข้อบกพร่อง


จุดสั่งซื้อ: éและÄเป็นอักขระหลายไบต์ (อย่างน้อยใน utf-8 ตามที่คุณมีไว้ที่นี่) ดังนั้นโปรแกรมนี้มีความยาว 9 ไบต์
ปล้น

6
@rob พวกเขาเข้ารหัสใน utf-8 ที่นี่เพราะนั่นเป็นเพียงวิธีที่เบราว์เซอร์ทำงาน V ใช้การเข้ารหัส "Latin1" ซึ่งเป็นตำแหน่งE9และC4ตามลำดับ
DJMcMayhem

21

แมงกระพรุน , 12 10 ไบต์

ขอบคุณ Zgarb สำหรับการบันทึก 2 ไบต์

P$'*
 &;10

ลองออนไลน์!

การอธิบาย

การใช้สัญกรณ์ทั่วไปเพิ่มเติมโปรแกรมนี้แสดงถึงนิพจน์ต่อไปนี้:

P( $( &;(10), '* ) )

&;ใช้ค่าเดียวและสร้างคู่กับสองเท่าของมูลค่าที่เพื่อช่วยให้เรา&;(10) [10 10]จากนั้น$จะทำการก่อร่างใหม่ซึ่งประกอบไปด้วยตาราง 10x10 ของเครื่องหมายดอกจัน ในที่สุดPพิมพ์อาร์เรย์ใน "รูปแบบเมทริกซ์" ซึ่งพิมพ์แต่ละสตริงในบรรทัดของตัวเอง


20

HTML & CSS, 104 60 ไบต์

p::after{content:"**********"
<p><p><p><p><p><p><p><p><p><p>

ฉันไม่แน่ใจว่าการนับไบต์ถูกต้องหรือไม่ <style>แท็กสำหรับ CSS HTML อาจสั้นลงถ้าฉันใช้ HTML preprocessor แต่ฉันไม่แน่ใจว่าผิดกฎหรือไม่

ขอบคุณ manatwork และ Business Cat

ดูรายการ Jadeของฉันที่มีขนาด 36 ไบต์


คุณสามารถออกจากการปิดตัวเอง/และเขียนแท็กทั้งหมดในบรรทัดเดียวกัน แต่ดีกว่าเปลี่ยนแท็กเพื่อที่มันจะสั้นแม้ว่าคุณจะต้องเพิ่ม<p> p{margin:0}
จัดการ

2
นี่ไม่ใช่ CSS ที่ถูกต้อง คุณต้องการวงเล็บปิด!
Richard Hamilton

25
@RichardHamilton css ที่ใช้งานได้และ css ที่ใช้งานไม่เหมือนกัน
undergroundmonorail

1
@ClementNerma ทำไมทุกคนควรใส่รหัสหลังจากนี้?
Erik the Outgolfer

2
คุณสามารถละทิ้งสุดท้ายที่>ฉันเชื่อ
12Me21

16

Python 2 22 21 ไบต์

print('*'*10+'\n')*10

print(("*"*10+'\n')*10)ทำงานให้ฉัน
piepi

6
@piepi นั่นเป็นเหตุผลที่คุณมักจะดีกว่าการเล่นกอล์ฟในหลาม 2 - printคุณไม่จำเป็นต้องวงเล็บเมื่อโทร
shooqie

@shooqie คุณไม่สามารถเอาชนะโซลูชัน Python3 ได้โดยใช้ Python2 Python2 และ Python3 เป็นภาษาที่แตกต่างกัน คุณจะไม่เปรียบเทียบโซลูชัน Python2 กับภาษากอล์ฟเฉพาะเช่น Pyth
Alfe

16

MATLAB, 14 ไบต์

repmat('*',10)

ฉันไม่มี MATLAB เพื่อทดสอบสิ่งนี้ดังนั้นฉันไม่แน่ใจว่าจะมีช่องว่างระหว่าง*s หรือไม่
Erik the Outgolfer

@EriktheGolfer ไม่ชัดเจน :)
PieCot

matแนะนำเมทริกซ์นั่นคือเหตุผลที่ฉันถาม
Erik the Outgolfer

2
@Erikthe นักกอล์ฟขอโทษฉันฉันหยาบคาย ในความเป็นจริง Mat หมายถึงเมทริกซ์ แต่ในกรณีนี้คือเมทริกซ์ของถ่านนั่นคืออาร์เรย์ของสตริง (ทุกแถวเหมือนสตริง) ดังนั้นเมทริกซ์ที่ปะทุจะถูกพิมพ์หนึ่งแถวสำหรับบรรทัดโดยไม่มีช่องว่างระหว่างองค์ประกอบของแถวเดียวกัน
PieCot

16

APL , 9 ไบต์

ทำงานกับ APL ทั้งหมดที่เคยทำ

10 10'*'

10 10 สิบแถวและสิบคอลัมน์

 cyclically R epeating

'*' ดวงดาว

ลองใช้ออนไลน์!


มันเป็นที่น่าสังเกตว่าวิธีนี้ไม่ได้เฉพาะเจาะจงของ Dyalog มันยังทำงานร่วมกับ GNU APL
Arc676

3
@ Arc676 True อันที่จริงมันทำงานกับ APL ทั้งหมดที่เคยทำ
อดัม

โอ๊ะฉันต้องการเพียงแค่หนึ่งไบต์มากขึ้น ... ฉันเกือบจะเอาชนะคุณกับ "รูปแบบ" เคล็ดลับ:∘.⊢⍨⍕⍨,⍨5
NGN

@ngn มันช่างน่ากลัวจริงๆ!
Adám

14

Java 7, 63 ไบต์

void f(){for(int i=0;i++<10;)System.out.println("**********");}

เพียงเพื่อลูกเตะ ฉันไม่สามารถหาเทคนิคเพื่อทำให้สั้นลงได้ พยายามเพิ่มตรรกะสำหรับ 100-loop หรือคืนค่าสตริงแทนที่จะพิมพ์แย่ลง


1
คุณสามารถลบมันออกทีละหนึ่งไบต์ถ้าคุณประกาศiว่าเป็นตัวแปรคลาส (เป็นค่าเริ่มต้น0):int i;void f(){for(;i++<10;)System.out.println("**********");}
shooqie

1
นั่นจะทำลายความสามารถในการนำกลับมาใช้ใหม่ถ้าฉันไม่ได้ทำi=0หน้าที่นี้
Geobits

3
+1 ดูเหมือนว่าคุณพูดถูกที่สุดว่าสั้นที่สุด .. การเรียกซ้ำคือ 65 ไบต์: int i=10;void f(){System.out.println("**********");if(i-->0)g();}; การเรียกซ้ำแบบหนึ่งต่อหนึ่งคือ 67 ไบต์: int i=99;void f(){System.out.print(i%10<1?"*\n":"*");if(i-->0)g();}; การใช้ String-constructor กับ char-array คือ 82 ไบต์: void g(){System.out.print(new String(new char[10]).replace("\0","**********\n"));}; และ String.format 81 void g(){System.out.print(String.format("%010d",0).replace("0","**********\n"));}ไบต์: อ่าเราลองกันแล้ว ;)
Kevin Cruijssen

2
แต่มันจะนับได้โดยไม่ต้องเพิ่มการประกาศคลาสหรือไม่? โปรแกรมเต็มรูปแบบ java7 สั้นที่สุดที่สามารถทำได้คืออะไร
jsbueno

1
คุณต้องนับคำสั่งการนำเข้าดังนั้นจึงไม่สามารถประหยัดได้ที่นี่
Geobits

14

Ruby, 15 ตัวอักษร

puts [?**10]*10

วิ่งตัวอย่าง:

bash-4.3$ ruby -e 'puts [?**10]*10'
**********
**********
**********
**********
**********
**********
**********
**********
**********
**********

คุณอธิบายได้?**10ไหม มันสร้างสตริงของดอกจันสิบ
ดวง

3
เป็นตัวละครที่สัญกรณ์ที่แท้จริงดังนั้น? ?* == '*'ครั้งที่ 2 *เป็นString.*วิธีการ?**10 == '*'.*(10)เพื่อให้
จัดการ

เกรงว่าฉันยังไม่เข้าใจว่าทำไม?สัญกรณ์สัญพจน์ของอะไร แต่บางทีคำถามบางคำถามก็ยังไม่ได้รับคำตอบที่ดีกว่า ;)
erich2k8

ขออภัยฉันไม่พบข้อมูลอ้างอิงเกี่ยวกับสิ่งนี้ เป็นเพียงไวยากรณ์รูบีซึ่งอนุญาตให้มีสัญพจน์ตัวอักษรของสตริงที่หลากหลายและอีกอันหนึ่งในกรณีที่สตริงมีความยาว 1 อักขระ: ?เครื่องหมายตามด้วยอักขระโดยไม่จำเป็นต้องมีคู่ปิดของ?เครื่องหมาย
จัดการ

1
ฉันพบมันในการอ้างอิงที่นี่: ruby-doc.org/core-2.3.0/doc/syntax/literals_rdoc.html There is also a character literal notation to represent single character strings, which syntax is a question mark (?) followed by a single character or escape sequence that corresponds to a single codepoint in the script encoding:
erich2k8

13

Notepad, 34กดแป้น 31

**********
^A^C↓^V^A^C↓^V^V^V^V

^ หมายถึง Ctrl- <ตัวอักษรต่อไปนี้> ปุ่มกด, ↑↓เป็นปุ่มขึ้นและลงตามลำดับ

อุปกรณ์ประกอบฉากเพื่อ Crypto เป็นเวลา 3 บันทึกการกดแป้นพิมพ์


2
คุณควรใช้การกดแป้นพิมพ์เพื่อนับสิ่งนี้
Leun Nun

1
นั่นคือ Shift + Up Ctrl + Up เป็นอย่างอื่น
Neil

1
31 keystrokes**********↵^A^C↓^V^A^C↓^V^V^V^V
Crypto

1
26 keystrokes*****^A^C^V^V↵^A^C^V^A^C^V^V^V^V^V
Andy

5
23 การกดแป้น**^A^C^V^V^V^V^V↵^A^C^V^V^A^C^V^V^V^V^V
Andy

13

อิโมจิโคเดด , 54 ไบต์

🏁🍇🔂i⏩0 10🍇😀🔤**********🔤🍉🍉

คำอธิบาย:

🏁🍇                        👴 The beginning of program.
    🔂 i ⏩ 0 10 🍇          👵 This is called a "range".
                          It basically starts with i=0 and increments until i=10, then exits. 👵
        😀 🔤**********🔤    👵 😀 is printing class.
                          The 🔤s make the characters they surround string literals. 👵
    🍉                     👴 End of range
🍉                         👴 End of program

2
ฉันนับ 54 utf-8 bytes
Conor O'Brien

ภาษานี้เกลียด WIndows 7 ...
John Dvorak


10

R, 27 29 ไบต์

cat(rep('\r**********\n',10))

คำตอบอื่น (34 ไบต์) คือ: cat(rep('**********',10),sep='\n')


นี่เป็นการเพิ่มพื้นที่พิเศษที่จุดเริ่มต้นของทุกบรรทัดยกเว้นบรรทัดแรก (ดูที่นี่ )
plannapus

\rขอบคุณก็ทำงานเพิ่ม
มี่

1
ทางเลือกอื่นมากเกินไป (37) ไบต์: cat(matrix('*',10,10),fill=10,sep='') ซอ
Jonathan Carroll

อีกทางเลือกอื่นเช่น 29 ไบต์: write(rep("*",100),"",10,,"")
Giuseppe

1
และwrite(rep("**",50),1,5,,"")คือ 27 ไบต์และหลีกเลี่ยงการรับคืนของการส่งคืนแรก
J.Doe

9

PHP, 32 ไบต์

for(;$i++<10;)echo"**********
";

(ตัวแปร 32 ไบต์ - เขียนด้วยecho)

<?=str_repeat("**********
",10);

(ตัวแปร 33 ไบต์)

<?=str_pad("",110,"**********
");

(ตัวแปร 33 ไบต์)

for(;$i++<110;)echo$i%11?"*":"
";

(ตัวแปร 35 ไบต์)

for(;$i++<10;)printf("%'*10s
",'');

(ตัวแปร 38 ไบต์)

<?=($a=str_repeat)($a("*",10)."
",10);

3
อันที่สองสามารถเล่นกอล์ฟได้ถึง32 ไบต์เช่นกัน:<?=str_repeat("**********↵",10);
แทรกชื่อผู้ใช้ ณ

1
ในขณะที่คุณมีคอลเลกชันที่ดีของทางเลือกที่นี่เป็นอีกหนึ่งเพื่อความสนุกสนาน: echo chunk_split(str_repeat("*",100),10);ที่ยาวที่สุดเพื่อให้ห่างไกลเพียงในวิสัยทัศน์ของฉันนี้เป็นวิธี PHP ที่จะทำมัน
จัดการ

สามารถสั้นลงได้ด้วยการเข้ารหัส WIN-1252 for(;++$i<111;)echo$i%11?~Õ:~õ;หรือfor(;++$i<11;)echo~ÕÕÕÕÕÕÕÕÕÕõ;
aross

อีกตัวแปรโมดูโล 33 for(;$i++<110;)echo"*↵"[$i%11<1];ไบต์: และเพื่อเพิ่มการแก้ปัญหา 37 for(;$i++<110;)echo chr($i%11?42:10);ไบต์คอลเลกชันที่:
ติตัส


8

Brainfuck, 46 43 ไบต์

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

ลองออนไลน์! ต้องการล่ามด้วยเทปที่เปิดทางด้านซ้ายและมีเซลล์ 8 บิต

ส่วนแรกของโปรแกรมนี้+[[---<]+[-->]<]ตั้งค่าเทปดังนี้:

[255, 250, 245, ... 15, 10, 5, 0, 250, 240, 230, ..., 40, 30, 20, 10, 0]
                                                                      ^

สิ่งนี้จะให้ 40 สำหรับการส่งออกเครื่องหมายดอกจัน ( *, ASCII 42), 20 เพื่อใช้เป็นตัวนับลูปและ 10 เพื่อใช้สำหรับการขึ้นบรรทัดใหม่


7

JavaScript (ES6), 37 ไบต์

console.log(`**********
`.repeat(10))

คำตอบที่ตรงไปตรงมา


5
คุณไม่สามารถบันทึก 6 โดยใช้alert?
Kevin L

1
เนื้อหาที่คุณสามารถบันทึก 13 ไบต์โดยการลบconsole.log()และระบุREPLในชื่อเรื่อง
Patrick Roberts

6

Cheddar, 21 20 ไบต์

print('*'*10+'
')*10

อีกคำตอบที่ตรงไปตรงมา


4
ใช้บรรทัดใหม่ตามตัวอักษรเพื่อบันทึก 1 ไบต์
Leun Nun

2
ทำให้ฟังก์ชั่นนี้ใช้->แทนการพิมพ์ได้หรือไม่?
Downgoat


6

R, 35 33 32 ไบต์

Ô R บางครั้งคุณก็พูดจาละเอียดละเอียด

for(i in 1:10)cat(rep("*",10),"\n")

ที่น่าสนใจคือcatฟังก์ชั่นนี้ไม่มีค่า (มันให้NULLกับ STDOUT) ดังนั้นคุณไม่สามารถทำเช่นนั้นได้rep(cat(rep)))ซึ่งจะสนุกกว่านี้!

แก้ไข:
โซลูชั่นใหม่ที่เสนอโดย @LeakyNun -2ไบต์

for(i in 1:10)cat("**********\n")

แก้ไข: ย่อให้เหลือเพียง-1ไบต์โดย @ user5957401

for(i in 0:9)cat("**********\n")

3
for(i in 1:10)"**********\n"
Leun Nun

1
@LeakyNun: ความเรียบง่ายเป็นกุญแจสำคัญ! catอย่างไรก็ตามฉันมีอย่างอื่นมันไม่ได้ผลิตอะไร
Frédéric

cat(rep("**********\n",10))
Leun Nun

@LeakyNun มันจะไม่ผลิตผลลัพธ์ที่ต้องการ: ดูที่นี่ ตัวคั่นเริ่มต้นในcatคือช่องว่างดังนั้นผลลัพธ์นี้
plannapus

5

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

จำนวนไบต์ถือว่าการเข้ารหัส ISO 8859-1 linefeed ชั้นนำมีความสำคัญ


10$**
.
$_¶

ขั้นแรกเขียนสตริงของเครื่องหมายดอกจันสิบอันขั้นตอนที่สองจะแทนที่แต่ละเครื่องหมายดอกจันด้วยสตริงทั้งหมดและตัวป้อนบรรทัด สิ่งนี้พิมพ์ linefeeds ต่อท้ายสอง


5

J , 10 9 ไบต์

1 ไบต์ต้องขอบคุณ @ Adám

10 10$'*'

ล่ามออนไลน์ล่ามออนไลน์

การอธิบาย

10 10ระบุมิติให้กับผู้ประกอบการ$ที่สร้างอาร์เรย์ที่มีมิติที่ระบุ


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