ผลิตหมายเลข 2014 โดยไม่มีตัวเลขใด ๆ ในซอร์สโค้ดของคุณ


579

หมายเหตุถึงการท้าทายผู้เขียนตามฉันทามติเมตา : คำถามนี้ได้รับการตอบรับอย่างดีเมื่อมีการโพสต์ แต่ความท้าทายเช่นนี้การขอให้ผู้ตอบDo Do โดยไม่ใช้ Y น่าจะได้รับต่ำ ลองใช้sandbox เพื่อรับคำติชมหากคุณต้องการโพสต์คำถามที่คล้ายกัน


มันคือ2017 2018 2019 แล้วคนกลับบ้าน

ดังนั้นตอนนี้ถึงปี 2014 ก็ถึงเวลาสำหรับคำถามเกี่ยวกับรหัสที่เกี่ยวข้องกับหมายเลข 2014

งานของคุณคือการสร้างโปรแกรมที่พิมพ์ตัวเลข2014โดยไม่ต้องใช้อักขระใด ๆ0123456789ในรหัสของคุณและเป็นอิสระจากตัวแปรภายนอกเช่นวันที่หรือเวลาหรือการสุ่มเมล็ด

รหัสที่สั้นที่สุด (นับเป็นไบต์) ให้ทำในภาษาใด ๆ ที่หมายเลขนั้นเป็นโทเค็นที่ถูกต้องชนะ


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


10
แม้ว่าตัวเลขจะถูกละเว้นใน brainfuck แต่ฉันคิดว่าฉันโพสต์ไว้ 32 Chars:++++++[>++++++++<-]>++.--.+.+++.
Braden ดีที่สุด

4
Brainfuck ไม่ใช่ภาษาที่ถูกต้องสำหรับความท้าทายนี้
Joe Z.

8
ฉันสงสัยว่าคำถามนี้ได้รับความนิยมบ้างเล็กน้อยในช่วงปีใหม่
Joe Z.

3
กำลังรอ "Come on folks คุณไม่ทราบหรือเปล่าว่าเป็นปี 2016" :)
padawan

1
@BradenBest สามารถทำได้ด้วยอักขระ 31 ตัวในวิธีที่แตกต่างกันอย่างน้อยสองวิธี: +++++++ [> +++++++ <-]> + .--. +. +++ และ ++++++++++ [> +++++ <-]> .--. +. +++
Zubin Mukerjee

คำตอบ:


126

Mouse-2002 , 4 ไบต์

นั่นคือASCII ที่บริสุทธิ์และหวาน 4 ไบต์

ในเมาส์ตัวอักษรของตัวอักษรจะเริ่มต้นเป็นค่า 0-25 !เป็นผู้ดำเนินการสำหรับจำนวนเต็มพิมพ์จึงพิมพ์นี้20แล้ว14(ไม่มีการขึ้นบรรทัดใหม่ต่อเนื่อง)

U!O!

ไม่มีล่ามออนไลน์ที่มีอยู่ แต่ที่นี่คุณจะได้พบกับล่ามเขียนใน C (จำเป็นต้องปรับแต่งบางอย่างก่อนที่หนึ่งสามารถบีบบังคับgccรวบรวม) และล่ามเรียบเรียงเดียวกันWin32แต่ที่ทำงานอย่างสมบูรณ์แบบบน Linux wineด้วย

ที่นี่คุณสามารถค้นหาล่ามเวอร์ชันที่แก้ไขซึ่งรวบรวม


7
ว้าวนี่คือการค้นพบที่น่าอัศจรรย์มากหลังจากความท้าทาย และด้วยภาษาที่ลึกลับไม่มีใครที่นี่เคยได้ยินมันเลย!
Joe Z.

3
BTW: สิ่งนี้ทำเช่นเดียวกับของ CJam KEแต่จริง ๆ แล้วใช้ได้เพราะเป็นภาษาก่อนหน้า 2014
Joe Z.

7
รูปลักษณ์พอใจในตัวเองบนใบหน้าของฉันตอนนี้คล้ายกับที่ของ Fortran-77 ตัวช่วยสร้างหลังจากหวดแสดงของงูใหญ่บางอย่างในเร็วที่สุดรหัส
cat

56
เกมนี้ของ @cat และ Mouse-2002
Digital Trauma

5
@DigitalTrauma แน่นอน: 3
แมว

1300

Python ขนาด 52 ไบต์

print sum(ord(c) for c in 'Happy new year to you!')

อัปเดตในปี 2558 ด้วย @Frg:

print sum(ord(c) for c in 'A Happy New Year to You!')

วางเมาส์เพื่อดูเวอร์ชั่น 2016:

print sum(ord(c) for c in 'Happy New Year to you!!!')

ลองออนไลน์!


186
คุณสมควรได้รับรางวัลความฉลาด
Carter Pape

167
ว้าว - เป็นเช่นนี้ในจิตวิญญาณของคำถามนี้ <3
โยฮันเนส

80
ฉันแปลกใจนิดหน่อยว่ามันเป็นเพียงวลีที่สี่ที่ฉันลองหลังจาก "สวัสดีปีใหม่!" ซึ่งน่าจะเหมาะสำหรับปี 1374
dansalmo

55
print sum(ord(c) for c in 'HAPPY NEW YEAR To you too.') โอ้เดี๋ยวก่อนฉันไปหนึ่งปีแล้ว นั่นคือ 2013.
Warren P

164
sum(map(ord,'Happy new year to you!'))จะบันทึก 7 ตัวอักษร

243

Befunge 98 - 17 11 9 8 ไบต์

'-:*b-.@

คล้ายกับรุ่นเก่า แต่ฉันจำได้ '

'-:* pushes 45, duplicates it, then squares it, producing 2025
b-   subtracts 11 from it, resulting in 2014
.@   prints the result, then ends the program

ที่น่าสนใจคือ 45 2 -11 เป็นเพียงการจับคู่หมายเลข a, b โดยที่ ความสำคัญของเซตเหล่านั้นคือ [32,126] คือชุดของอักขระ ASCII ที่พิมพ์ได้และ [10,15] คือชุดของตัวเลข Befunge ที่เข้าถึงได้ง่าย ฉันพบว่าจับคู่กับโปรแกรม python นี้ :

(a,b)[32,126]×[10,15]a2b=2014
for a in range(32,127):
    for c in range(10,16):
        if (a**2-c)==2014:
            print("%s,%s"%(a,c))

หรือหากล่ามของคุณรองรับยูนิโค้ดแล้วก็ใช้งานได้:

Befunge 98 - 5 ไบต์ (4 ตัวอักษร)

'ߞ.@

ทำงานอย่างน้อยในhttp://www.quirkster.com/iano/js/befunge.htmlด้วยรหัสต่อไปนี้ (Befunge 93 - 6 bytes / 5 chars):

"ߞ".@

เวอร์ชั่นเก่า

cdd**e-.@

คำนวณจำนวนแล้วพิมพ์:

cdd pushes numbers to the stack so that it is this: 12,13,13
**  multiplies top three values of stack, which is now: 2028
e   pushes 14
-   subtracts the top two values of the stack, resulting in: 2014
.   prints the numerical value
@   end of program

รุ่นเก่ากว่า:

"*'&("#;:a`j@a+,;

พุชค่า ascii สำหรับ 2014, -10 จากนั้นพิมพ์แต่ละภาพหลังจากเพิ่ม 10 ลงไป


78
en.wikipedia.org/wiki/Befunge ... นี่คือสิ่งที่ฉันไม่ได้ ...
Plato

36
"ภาษาที่ถูกสร้างขึ้นมาโดยคริสเพรสซีย์ในปี 1993 เป็นความพยายามที่จะประดิษฐ์ภาษาซึ่งเป็นเรื่องยากที่จะรวบรวมเป็นไปได้" ...
จะ

7
@ 11684 ผลลัพธ์ค่อนข้างชัดเจนในคำถาม หากโปรแกรมที่พิมพ์ออกมา: randomstuff2randomstuff0randomstuff1randomstuff4ฉันจะไม่ถือว่าเป็นโซลูชันที่ถูกต้อง
Cruncher

7
@Plato แทนที่จะอ่านบทความวิกิพีเดีย (ซึ่งรวมถึง Befunge 93 เท่านั้น) หากคุณต้องการเรียนรู้เกี่ยวกับ Befunge 98 ให้อ่านรายละเอียดอย่างเป็นทางการ
Justin

3
วิกิพีเดีย: 'ภาษานี้ถูกสร้างขึ้นโดย Chris Pressey ในปี 1993 เพื่อพยายามประดิษฐ์ภาษาที่ยากต่อการรวบรวมเท่าที่จะเป็นไปได้' ... แต่ทำไม?
CousinCocaine

239

ทับทิม, 15

p Time.new.year

ชั่วคราว;)


โปรดทราบว่าส่วนของคำถาม

เป็นอิสระจากตัวแปรภายนอกใด ๆ เช่นวันที่หรือเวลาหรือสุ่มเมล็ด

ไม่ถูกแก้ไขจนกว่าจะนานหลังจากที่ฉันโพสต์คำตอบของฉัน ...


Jan Dvorak เสนอทางเลือกที่ดีในการแสดงความคิดเห็น :

Happy = Time
Happy.new.year

แต่มันก็ไม่กระตือรือร้น ฉันชอบ:

Happy = Time
class Time; alias year! year; end

Happy.new.year!

หรือแม้กระทั่ง:

class Have; def self.a; A.new; end; end
class A; def happy; Time; end; end
class Time; alias year! year; end

Have.a.happy.new.year!

และนี่คือเครื่องหมายวรรคตอนภาษาอังกฤษที่ถูกต้อง:

def noop x = nil; end
alias a noop
alias happy noop
alias new noop
alias year! noop
def Have x
    p Time.new.year
end

Have a happy new year!

โอเคฉันไม่สามารถช่วยได้:

def noop x = nil; end
eval %w[we wish you a merry christmas! christmas and a happy new].map{|x|"alias #{x} noop"}*"\n"
def year!; p Time.new.year; end

we wish you a merry christmas! we wish you a merry christmas!
we wish you a merry christmas and a happy new year!

168
Happy = Time; Happy.new.year
John Dvorak

5
@ ฮอบส์ไม่มันไม่ใช่; คำถามไม่ได้พูดอะไรเกี่ยวกับเรื่องนี้
Doorknob

12
วิธีนี้จะทำงานได้อย่างถูกต้องในบางครั้ง
hippietrail

119
มันทำงานได้ดีในการทดสอบทั้งหมดจนถึงปัจจุบัน
CoderTao

7
ฉันเชื่อว่าจิตวิญญาณของคำถามคือการพูดปีปัจจุบัน [ซึ่งเกิดขึ้นเป็น 2014 ในปีนี้] วิธีการแก้ปัญหานี้จึง "พกพา" มากกว่าเวลาที่ยอมรับได้;) คุณ (และ Jan Dvorak) ได้รับคะแนนของฉัน!
Olivier Dulac

223

ไป 2 ไบต์ (UTF-16)

อักขระ Unicode หนึ่งตัว (2 ไบต์ในรูปแบบ UTF-16, 3 ไบต์ในรูปแบบ UTF-8) เอาท์พุท 2014 เป็นส่วนหนึ่งของข้อผิดพลาด

http://ideone.com/dRgKfk

can't load package: package : 
prog.go:1:1: illegal character U+2014 '—'

7
มันฉลาดมาก แต่คำถามก็ขอให้โปรแกรมพิมพ์หมายเลขออกมา
HelloGoodbye

40
หากมีการนับรหัสข้อผิดพลาดที่พิมพ์การส่งนี้จะชนะ
ToastyMallows

37
+1 คำถามไม่ได้พูดว่า "พิมพ์เฉพาะจำนวนและไม่มีอะไรอื่น"
Kaz

1
ฉันไม่สนใจว่ามันจะถูกต้องหรือไม่มันยอดเยี่ยมมาก
โปรแกรม Redwolf


177

Python 26

print int('bbc',ord("\r"))

53
bbc คือ 2014 ในฐาน 13
Darren Stone

71
ฉันถือว่าการใช้ตัวละคร 'bbc' และการใช้ฐาน 13 เป็นบรรณาการดักลาสอดัมส์ "ฉันอาจจะเสียใจ แต่ฉันไม่เขียนมุขในฐาน 13"
Brian Minton

10
13 ปีที่แล้ว ฉีก.
Darren Stone

4
IMO คำตอบนี้อยู่ใน "True Pythonese"
kmonsoor

8
@BrianMinton: การใช้ฐาน 13 อาจเป็นเพราะมันเป็นเพียงฐานระหว่าง 2 และ 36 ที่ช่วยให้จำนวน 2014 ที่จะเป็นตัวแทนโดยไม่ต้องมีตัวละคร-0 9
dan04

146

MATLAB, Scala (4 ตัวอักษร, 5 ไบต์)

คุณสามารถใช้ประโยชน์จากระบบที่ค่อนข้างอ่อนแอของ MATLAB (และ Scala) ได้ที่นี่ เคล็ดลับคือการใช้การดำเนิน+การunary บนสตริงที่ประกอบด้วยอักขระเท่านั้นߞ(ของรหัสจุด UTF-8 U + 07DE หรือ 2014 เป็นทศนิยม) การดำเนินการนี้เป็นการแปลงสตริงเป็น double (ใน MATLAB) และเป็นInt(ใน Scala):

+'ߞ'

รายละเอียดจำนวนไบต์:

  • + คือ ASCII และนับเป็น 1 ไบต์
  • ' คือ ASCII และนับเป็น 1 ไบต์ (แต่ปรากฏสองครั้งในนิพจน์)
  • ߞ เป็นอักขระ UTF-8 ขนาด 2 ไบต์

ทั้งหมด: 5 ไบต์

TeX (32 26 ตัวอักษรจำนวนไบต์มากที่สุด)

\def~{\the\catcode`}~}~\\~\%\bye

ทางเลือกที่สั้นกว่านี้ (เสนอโดยโจเซฟไรท์ ) คือ

\number`^^T\number`^^N\bye

XeTeX / LuaTeX (13 ตัวอักษร, 14 ไบต์)

หากอนุญาตให้ XeTeX หรือ LuaTeX สามารถใช้อินพุต UTF-8 ได้โดยตรง (ตามที่Joseph Wrightเสนอ):

\number`ߞ\bye

\let~\number~`^^T~`^^N\bye25 ตัวอักษร / ไบต์ คุณนับว่าผิด IMHO ก็เป็น 25 สำหรับการแก้ปัญหาของคุณเช่นกัน
yo '

1
@tohecz ฉันคิดว่าโซลูชันของเรามีความยาว 26 ไบต์จริง ๆ
jub0bs

1
หากต้องการปีปัจจุบันให้ป้อน 13 ไบต์:\the\year\bye
yo '

2
+'ߞ'ยังใช้งานได้ใน Scala (และภาษาอื่น ๆ ที่ฉันจินตนาการ)
theon

118

dc, 6 ตัวอักษร

DiBBCp
  • D เพิ่ม 13 ในสแต็กแม้กระทั่งค่าอินพุตรัศมีคือ 10 ในตอนแรก
  • i เปลี่ยน radix อินพุต (เป็น 13 จาก 10)
  • BBC คือ 2014 ฐาน 13
  • p พิมพ์

เอาต์พุตคอนโซล:

$ dc <<< "DiBBCp"
2014

10
เป็นจริง แต่โปรแกรม dc จริงยังคงอยู่DiBBCp(6 ตัวอักษร) ส่วนที่เหลือเป็นเพียงวิธีในการเรียกใช้
daniero

11
ฉันจะลงคะแนนให้ แต่มันมี 42 คะแนน! ใช้ฐาน 13 และคำว่า BBC ช่างยอดเยี่ยมจริงๆ! ดูเหมือนว่าปีนี้เราจะได้พบกับคำถามสำหรับชีวิตจักรวาลและ Everithing ;-) en.wikipedia.org/wiki/Base_13 ฉัน upvoting ความคิดเห็นของ @ daniero แทนและออกจากคำตอบกับชื่อเสียงอันงดงาม 42 นี้ ;-)
Pablo Marin-Garcia

4
@ PabloMarin-Garcia โชคไม่ดีที่บางคนไม่รู้จักทำลายมัน ... มี 43 คะแนนตอนนี้ โปรดย้อนกลับและโหวตลง! :)
โทมัส

3
@Tomas Vogons เป็น Vogons เสมอ การต่อต้านนั้นไร้ประโยชน์เมื่อเทียบกับระบบอวกาศ
Pablo Marin-Garcia

2
ฉันไม่สามารถหาDคำสั่งในหน้าคู่มือได้ มันทำอะไร? ไม่เป็นไร
หรอก

93

รหัสมอร์ส, 23

;)

..--- ----- .---- ....-

21
"ในภาษาใด ๆ ที่มีหมายเลขโทเค็นที่ถูกต้อง"
Doorknob

14
"..---" เป็นโทเค็นที่ถูกต้องใน 5 จังหวะสำหรับหมายเลขสองใช่มั้ย เช่นเดียวกับ "4" เป็นโทเค็นที่ถูกต้องในสามจังหวะสำหรับหมายเลข "สี่"
DavidC

8
อักษรเบรลล์อาจสั้นกว่านี้ :)
Dr. belisarius

31
จุดดี. แต่ฉันก็โล่งใจที่ไม่มีใครถามว่าจะให้มอร์สโค้ดทำงานบนคอมพิวเตอร์ได้อย่างไร
DavidC

14
@DavidCarraher คุณหมายถึงอะไร? โดยปกติฉันคิดว่าคุณใช้ repo นี้เพื่อถอดรหัสมัน github.com/Nyubis/mspa-morse-decoderทุกคนทำมัน ...
Michael J. Calkins

88

72 45 ตัวอักษรในรหัส; รหัสตัวอักษรเป็นศูนย์

นี่อยู่ไกลจากคำตอบที่สั้นที่สุดที่โพสต์ แต่ยังไม่มีใครโพสต์คำตอบที่

  • ไม่ใช้รหัสตัวอักษรแทนตัวเลขและ
  • ไม่เรียกวันที่ของระบบ

การใช้คณิตศาสตร์บริสุทธิ์ (โอเคและการแปลงบูลีนอัตโนมัติ) ใน R จากคอนโซล R:

x<-(T+T);x+floor(exp(pi)^x)*x*x-(x*x)^(x*x)/x

พิมพ์จำนวน 2014. Tเป็นคำพ้องที่กำหนดไว้ล่วงหน้าสำหรับความจริงในอาร์floorและexpฟังก์ชั่นที่มีอยู่ในแพคเกจฐานโดยตรงเช่นเดียวกับpiค่าคงที่ R ไม่มีตัวดำเนินการที่เพิ่มขึ้น แต่การทำซ้ำ(x*x)กลายเป็นอักขระที่น้อยลงซึ่งทำการเพิ่มและลดละสองครั้ง


รุ่นดั้งเดิมใน Javascript (72 ตัวอักษร)

ด้วยเหตุผลง่ายๆที่ฉันสามารถทดสอบในคอนโซลและมันก็ไม่สนใจการขาดช่องว่างที่สมบูรณ์:

m=Math;p=m.pow;t=true;++t+m.floor(p(m.exp(m.PI),t))*t*t++-p(++t,t--)/--t

ทำงานในคอนโซลของคุณและมันจะพิมพ์กลับจำนวน 2014


อุปกรณ์ประกอบฉากเพื่อxkcd (และยัง ) สำหรับการทำให้ฉันคิดถึง exp (pi): e กำลัง pi ลบ pi

ป.ล. ถ้าคุณสามารถทำให้อัลกอริทึมเดียวกันสั้นลงในภาษาอื่นให้โพสต์ความคิดเห็นด้วย


1
o =! ""; (o + o) + "" + (oo) + (o + oo) + (o + o + o + o + o)
เคอร์เนล James

4
25 ไบต์: การแจ้งเตือน ('ߞ'. charCodeAt ())
oberhamsi

1
+1 อย่างไรก็ตามคุณอ้างว่าคำตอบของคุณเป็นคำตอบแรกที่ "ไม่ใช้รหัสตัวอักษรแทนตัวเลขและไม่เรียกวันที่ของระบบ" นั่นเป็นเรื่องจริงเท็จ คำตอบของฉันมีวิธีแก้ปัญหานี้cdd**e-.@(โพสต์ต่อหน้าคุณ) ซึ่งไม่ได้ใช้รหัสตัวอักษรหรือวันที่ของระบบ มันคำนวณจำนวนปี 2014 c, dและeเป็นหลักเลขฐานสิบหก a,, b... , fpush (ตามลำดับ) 10,11, ... 15 ดังนั้น12 * 13 * 13 - 14การคำนวณ
Justin

นี่ไม่ใช่คำตอบแรกที่ไม่ใช้รหัสอักขระ ฉันมีหลายรุ่นก่อนหน้านี้
Timtech

1
@Quincunx: ถูกต้อง; ฉันอ่านไม่ทันว่าเวอร์ชั่นของคุณใช้เลขฐานสิบหกไม่ใช่รหัสตัวอักษร
AmeliaBR

85

สกาลา REPL

34 29 ตัวอักษร

+"Happy new year to you!".sum

โอเคถ้าคุณต้องการให้มันเล่นกอล์ฟด้วยตัวอักษรใด ๆ คุณสามารถใช้:

'@'*' '-'"'

หรือ

"{yz}"map(_-'I'toChar)

ซึ่งมี 11 และ 22 ตัวอักษรตามลำดับ


4
ความคิดที่น่าสนใจแม้ว่ามันจะไม่ใช่กอล์ฟโดยเฉพาะ แต่สตริงตัวเองทำให้มันน่าสนใจกว่าสิ่งที่ใช้ไบต์สูงหรืออะไรแบบนั้น
Konrad Borowski

ฉันเพิ่มเวอร์ชัน golfed
Mikaël Mayer

คุณสามารถบันทึกอักขระสองสามตัวจากtoIntแบบนี้: +"Happy new year to you!".sum ทดสอบ
theon

Updated ฉันไม่ทราบว่า + อาจเป็นคำนำหน้า
Mikaël Mayer

68

PHP, 9 ไบต์

ต้องใช้ PHP 7.1 หรือต่ำกว่า มันจะทำงานใน PHP 7.2 แต่มันจะส่งผลเตือน ไม่มีการรับประกันสำหรับรุ่นในอนาคตใด ๆ

xxdจำเป็นเนื่องจากข้อมูลไบนารี (ดังนั้นการคัดลอกและวางมันจะง่ายขึ้น) อาจกลับมาE_NOTICEแต่มันไม่สำคัญจริงๆใช่ไหม?

~ $ xxd -r > 2014.php
0000000: 3c3f 3d7e cdcf cecb 3b                   <?=~....;
~ $ php 2014.php
2014

หรือบันทึกสิ่งนี้โดยใช้การเข้ารหัส ISO-8859-1

<?=~ÍÏÎË;

@Quincunx: อัปโหลดนี้ค่อนข้างยุ่งยาก แต่นี่คือ Ideone - ideone.com/APHKhn
Konrad Borowski

1
มันดูน่าสนใจ มันทำอะไร?
Justin

7
@Quincunx: มันไม่ bitwise (0x00 เปลี่ยนเป็น 0xFF และ 0x7F เปลี่ยนเป็น 0x80) ในตัวละครทุกตัวของสตริง เนื่องจากสตริงเป็นตัวระบุที่ถูกต้อง (ทุกสิ่งที่มีชุดบิตสูงเป็นตัวระบุสำหรับ PHP อาจสนับสนุนการเข้ารหัสอื่น ๆ ) PHP คิดว่ามันคงที่ แต่เนื่องจากไม่ได้กำหนดไว้จึงถือว่าเป็นสตริง
Konrad Borowski

2
เนื่องจากคำถามคือ "ตอนนี้เป็น 2014 ... " แล้วecho date('Y');ล่ะ
John

6
@John: ไม่ หากคุณจะอ่านความคิดเห็นสำหรับคำถามคุณจะสังเกตเห็นว่า OP ไม่ต้องการให้ได้รับปีปัจจุบันเป็นคำตอบ นอกจากนี้<?=date(Y);จะเป็น 11 ตัวอักษรและฉันมีทางออกใน 9 ตัว
Konrad Borowski

67

C, 33 ไบต์

main(){printf("%d",'A'*' '-'B');}

19
น่ารำคาญเพียงใดที่การแยกตัวประกอบเฉพาะของปี 2557 ต้องใช้ ASCII 5!
Ben Jackson

ฉันได้รับ (int a; YES; a ++) {NSLog (@ "%%", a);} สำหรับ Cocoa Touch วัตถุประสงค์ C แต่ฉันยังไม่สามารถเพิ่มได้ (ยังไม่ได้รับคะแนนมากพอ) มันแสดงปี 2014 ในที่สุดและมีข้อผิดพลาดในการคอมไพเลอร์และเป็นไปได้ที่มันอาจจะไม่ทำงานเลย
เหล็กรีไซเคิล

main () {printf ("% d", '\ a \ xde');}
mjy

1
@mjy คำสั่ง Byte ของตัวอักษรหลายตัวไม่รับประกัน
Jonathon Reinhart

@JonathonReinhart ตัวอักษรหลายตัวเป็นการนำไปใช้โดยสิ้นเชิง
FUZxxl

54

Mathematica, 14 ตัวอักษร (หรือ 15 ถ้าคุณนับบิตแมปเป็นตัวอักษร)

TextRecognize @ป้อนคำอธิบายรูปภาพที่นี่


50
ที่จริงแล้วคุณควรนับจำนวนไบต์ดังนั้นมันจึงมีขนาด 14+ ขนาดของรูปบิตแมป
Sylwester

22
บิตแมปอาจจะเป็น 7,357 ตัวอักษรจริงๆ
Joe Z.

5
นอกจากนี้ฉันเชื่อว่าบางไบต์ในภาพตกลงไปใน\dช่วง กล่าวคือถ้าเป็น GIF ส่วนหัวนั้นรับประกันว่าจะมีบางส่วน
John Dvorak

13
คุณเป็นคนฆ่าจอย ดีใช้ First @ ToCharacterCode @ "ߞ" สำหรับ 25 ตัวอักษร 26 ไบต์
Michael Stern

9
เป็นโบนัสนี่เป็นวิธีแก้ปัญหา Mathematica ใน 30 ตัวอักษร --URLFetch @ " goo.gl/miVwHe "
Michael Stern

53

Python3.4.0b2 (0 ไบต์)

% python3.4  
Python 3.4.0b2 (v3.4.0b2:ba32913eb13e, Jan  5 2014, 11:02:52) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

สิ่งนี้จะไม่ทำงานเมื่อมีคนอัปเดต Python 3 ของพวกเขาต่อปีนับจากนี้
Joe Z.

21
นั่นเป็นเหตุผลที่ฉันพูดถึงpython3.4.0b2มันจะไม่เกิดขึ้นสองครั้ง วันที่เผยแพร่ไม่ใช่วันที่ระบบ
คุณ

6
นี่ทำให้ฉันยิ้มได้!
Matt Fletcher

2
ใช้งานได้ใน Python 3.4.2
Erik the Outgolfer

คุณไม่ได้รับอนุญาตให้เพิ่มเอาต์พุตภายนอก
MilkyWay90

48

Javascript ขนาด 23 ไบต์

ใช้การแปลงฐาน 64

alert(atob("MjAxNA=="))

23 ตัวอักษร (16 กับ atob ด้วยตัวเอง)

หรือ

alert("MMXIV") // ;)

27
MMXIVไม่มีตัวละครที่เหมือนกันกับที่2014ฉันตรวจสอบล่าสุด ...// ;)
โจ Z.

23
ชาวโรมันโบราณอาจไม่เห็นด้วย คนแรกผลิต 2014 แม้ว่าในภาษาอังกฤษที่ทันสมัย
logic8

1
คนแรกของคุณไม่ออกแม้ว่า ...
Doorknob

1
หากคุณเปิดคอนโซลในโครเมี่ยมให้วางแล้วกด Enter เพื่อคืนค่า - ฉันจะเพิ่มการแจ้งเตือนให้นานกว่าคอนโซลอื่น
logic8

5
@ logic8: ดีหนึ่ง +1 อีกรุ่น JavaScript ที่ใช้งานได้: (4 ไบต์) [!+[]+!+[]]+[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]]- alert([!+[]+!+[]]+[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]]);แม้ว่าฉันไม่แน่ใจว่าเป็นไปตามJoe Zข้อกำหนดของ
Nope

41

Perl - 10 ตัวอักษร

โซลูชันนี้ได้รับความอนุเคราะห์จาก BrowserUK บน PerlMonksแต่ฉันได้ลบเครื่องหมายวรรคตอนและช่องว่างที่ไม่จำเป็นออกจากโซลูชันที่เขาโพสต์ไว้ มันเป็นบิต "ไม่ใช่" ในสตริงไบนารี่สี่ตัวอักษร

say~"ÍÏÎË"

อักขระที่แสดงด้านบนแสดงถึงเลขฐานสอง octa cd: cf: ce: cb และเป็นวิธีที่ปรากฏใน ISO-8859-1 และ ISO-8859-15

นี่คือสคริปต์ทั้งหมดในฐานสิบหกบวกกับตัวอย่างที่เรียกใช้:

$ hexcat ~/tmp/ten-stroke.pl
73:61:79:7e:22:cd:cf:ce:cb:22
$ perl -M5.010 ~/tmp/ten-stroke.pl
2014

Perl (ไม่มีบิตสูง) - 14 ตัวอักษร

say'````'^RPQT

สิ่งนี้ใช้ bitwise "หรือ" ในสองสายอักขระสี่ตัว"RPQT"และ"````"(นั่นคือสี่ backticks)

$ ~/tmp/fourteen-stroke.pl
73:61:79:27:60:60:60:60:27:5e:52:50:51:54
$ perl -M5.010 ~/tmp/fourteen-stroke.pl
2014

(ตอนแรกฉันมีสองสายในทางตรงกันข้ามซึ่งต้องการช่องว่างระหว่างprintและRPQTเพื่อแยกโทเค็น @DomHastings ชี้ให้เห็นว่าโดยการสลับพวกเขาไปรอบ ๆ ฉันสามารถบันทึกตัวละคร)

Perl (โกง) - 8 ตัวอักษร

นี่อาจจะไม่ได้อยู่ในจิตวิญญาณของการแข่งขัน แต่hdb บน PerlMonks ได้ชี้ให้เห็นว่า Perl ให้ตัวแปรที่เรียกว่า$0ที่มีชื่อของโปรแกรมปัจจุบันที่กำลังดำเนินการ หากเราได้รับอนุญาตให้ตั้งชื่อไฟล์ที่มีสคริปต์ "2014" $0จะเท่ากับปี 2014 ซึ่ง$0มีตัวเลขดังนั้นเราจึงไม่สามารถใช้งานได้โดยตรง แต่การ${...}มีนิพจน์ที่ประเมินเป็น 0 จะถือว่าใช้ได้ ตัวอย่างเช่น:

say${$|}

เพื่อความมั่นคงลองทำ hexcat-then-perl กับ:

$ hexcat 2014
73:61:79:24:7b:24:7c:7d
$ perl -M5.010 2014
2014

ฉันคิดว่านี่เป็นการโกง แต่มันก็เป็นทางออกที่น่าสนใจอย่างไรก็ตามควรพูดถึง


2
เฮ้มีถ้าคุณย้อนกลับสตริงและ barewords print"````"^RPQTคุณสามารถบันทึกถ่าน: อาจเป็นไปได้ที่จะใช้sayกับ 5.10+ ด้วยการใช้ -E แทน -e แต่ฉันไม่รู้ว่ามันจะมีค่าปรับ +2 สำหรับบรรทัดคำสั่งอื่นหรือไม่
Dom Hastings

2
ถือว่ายอมรับได้เพื่อระบุว่าคุณใช้ Perl 5 และใช้งานโดยsayไม่มีการลงโทษ
Peter Taylor

@ DomHastings โดยส่วนตัวฉันคิดว่าถ้าคุณจะทำกับ "-e" หรือ "-E" ฉันจะบอกว่าคุณควรจะรวมคำสั่งทั้งหมดรวมถึง "perl -E" ในการนับตัวละครของคุณ .
tobyink


4
say ABCD^srrpนอกจากนี้คุณยังอาจจะช่วยไบต์อื่นโดยใช้ตัวอักษรของสตริงที่ไม่ต้องใช้คำพูดเช่น
primo

40

ทับทิม, 20

p 'bbc'.to_i ?\r.ord

คำอธิบาย: bbcอยู่2014ในฐาน 13 ตัวสั้นกว่า Python ไม่สั้นเท่ากับ Forth


23
"ไม่มีใครเขียนเรื่องตลกในฐาน 13!"
Jean-Michaël Celerier

1
? W = $; "^ XA [_AXeMFGIAHJLjKNAEFEJJNHQHNKLAEMINJOJOHLAGKHOJOJ [เอจี [HQHRFJAH} IHAIGGwIIAHHGwKHAHGHrEUAGQFiGVAGQGfIPAFHKHHbJHAQII] MGASHNSOHATIdIAUJJRLIAWLIQGKAZOFUA] ZAeSAiPAjOAkLA" .codepoints {| R | r- = 68; $> << (R <0 ?? \ n: (w = W = =? $? '':? $) * r)}
Darren Stone

1
p 'ߞ'.ordสำหรับโปรแกรมการทำงานอย่างเต็มที่ภายใน'ߞ'.ord irbใช้งานได้ตั้งแต่
1.9+

1
ไม่มีตัวอักขระ Unicode "แปลก": ?-*?--?\v(45 * 45 - 11) (Ruby 1.8)
Ricardo Panaggio

ตัวละครตัวเล็ก: ?.*?.-?f(46 * 46 - 102) (Ruby 1.8 เท่านั้นอีกครั้ง)
Ricardo Panaggio

29

พาวเวอร์เซลล์, 9

+"ߞ"[""]

ߞ( U + 07DE NKO จดหมาย KA ) นับเป็นไบต์ที่สองตามข้อมูลแท็กรหัสกอล์ฟ

[""]ส่งคืนอักขระตัวแรกจากสตริง ( ""ถูกแปลงเป็น0) unary plus opeartor ( +) แปลงอักขระเป็นจำนวนเต็ม


1
ตามcodegolf.stackexchange.com/tags/code-golf/infoควรนับเป็น 9 ตัวอักษร
Konrad Borowski

@GlitchMr ขอบคุณฉันแก้ไขคำตอบแล้ว
Danko Durbić

3
นี่['']เป็นกลลวงที่ดี ฉันมักจะใช้[char]แต่ที่แน่นอน :) สั้น
โจอี้

27

Scala REPL - 6 ตัวอักษร

"?="##

( ##คือความหมายสัญลักษณ์ของ Scala hashCodeและสตริง Java "?="hashes ถึง 2014)

Scala REPL - 4 ตัวอักษร 5 ไบต์

+'ߞ'

คณิตศาสตร์ในอักขระ Unicode Intชื่นชอบของเราผลิต


27

Javascript, 18 ตัวอักษร

alert(btoa('ÛMx'))

อัปเดต:ใน ES6 การใช้เทมเพลตตัวอักษรสามารถบันทึกอักขระได้สองตัว:

alert(btoaMx`)

รหัสข้างต้นค่อนข้างง่ายต่อการเข้าใจโดยคำนึงถึงว่าbtoaแปลงสตริงเป็นสตริงอื่นตามชุดของกฎที่กำหนดไว้อย่างดี ( RFC 4648 ) เพื่อดูว่าการแปลงทำงานอย่างไรเราจะเขียนสตริงอินพุต "ÛMx" เป็นลำดับเลขฐานสองโดยที่แต่ละอักขระจะแสดงผลเป็นรหัสอักขระ 8 บิต

ป้อนอักขระ | Û | M | x
รหัสตัวละคร (ทศนิยม) | 219 | 77 | 120
รหัสอักขระ (ไบนารี) | 11011011 | 01001101 | 01111000

หลังจากจัดระเบียบเลขฐานสองใหม่ในแถวสุดท้ายในกลุ่ม 6 เราจะได้รับการแทนเลขฐานสองของตัวเลขใหม่ 4 ซึ่งสอดคล้องกับดัชนี Base64 ของ 4 ตัวอักษรในสตริง "2014"

ดัชนี Base64 (ไบนารี) | 110110 110100 | 110101 | 111000
ดัชนี Base64 (ฐานสิบ) | 54 | 52 | 53 | 56
อักขระเอาท์พุท 2 | 0 | 1 | 4

ตามข้อกำหนดของ HTML, ตัวละครที่ส่งออกสามารถเรียกข้อมูลจากดัชนี Base64 ของตนตามตารางนี้: http://dev.w3.org/html5/spec-LC/webappapis.html#base64-table

หากคุณไม่สนใจรายละเอียดคุณสามารถให้เบราว์เซอร์ทำการคำนวณให้คุณและพบว่า "ÛMx" เป็นผลมาจากการประเมินatob('2014')ใน Javascript


คำถามที่กล่าวถึงการพิมพ์จำนวน ฉันรู้ว่าการประเมินผลในคอนโซลจะนำไปสู่ผลลัพธ์ที่ส่งคืน แต่โดยทั่วไปแล้วCode Golfคาดว่าคำตอบของ JS จะรวมถึงรูปแบบของ IO ( alertโดยทั่วไป)
zzzzBov

@zzzzBov ใช่คำตอบเดิมของฉันรวมถึงการalertโทร
GOTO 0

จะแสดงชุมชนalertว่ามีการออก ฉันสงสัยว่ามาตรฐานมีการเปลี่ยนแปลงสำหรับ codegolf JS หรือไม่ว่าเป็นเพียงการเปลี่ยนแปลงที่นำโดยชุมชน
zzzzBov

@zzzzBov: มันเป็นการเปลี่ยนแปลงโดยผู้ใช้นิรนามที่ยอมรับโดย SHiNKiROU และ luser droog อย่างไรก็ตามการแก้ไขนี้ทำให้เกิดการอภิปรายใน Meta ( meta.codegolf.stackexchange.com/questions/803/… )
Konrad Borowski

@ แก้ไขด่วนไม่ใช่การแก้ไขเพียงอย่างเดียวที่ทำให้ฉันถามคำถามเกี่ยวกับ meta ฉันเห็นโค้ดกอล์ฟมากพอที่ผู้คนไม่เห็นด้วยกับเรื่องที่ว่าคอนโซล dev นับเป็นงานพิมพ์หรือไม่ฉันคิดว่ามันคุ้มค่าที่จะขอมาตรฐาน
zzzzBov

24

อีกรายการ GolfScript อีก 9 ตัวอักษรที่พิมพ์ได้

ฉันเชื่อว่านี่สั้นกว่ารายการ GolfScript ที่สามารถพิมพ์ได้:

"!="{*}*)

( รายการ 7 char ของปีเตอร์เทย์เลอร์ชนะ แต่รวมถึงตัวควบคุมที่ไม่สามารถพิมพ์ได้)

ผมเรียกนี้ "นั่นคือเพื่อให้ปีที่ผ่านมา!" เนื่องจากสิ่งที่จริงแล้วสร้างหมายเลข2013ใน 8 ตัวอักษรเป็น 33 × 61 และเพิ่มทีละหนึ่ง ;-)


คุณชนะ (สำหรับ ascii golfscript)
aditsu

21

C (31)

main(){printf("%o",' b'/'\b');}

C (32)

main(){printf("%x%o",' ','\f');}

C (30)

main(){printf("%x",' j'^'~');}

C (30)

main(){printf("%d",'\a\xde');}

วิธีการเกี่ยวกับเพียง"%x"และ'b'*'S'? นั่นคือ 8212 ธ.ค. หรือเลขฐานสิบหก 2014 บันทึกหนึ่งอักขระถ่านหนึ่งตัวอักษรและสองสตริงในรูปแบบ
MSalters

'b'*'S'@MSalters ไม่เป็น 8134 ตัวประกอบสำคัญของ 8212 คือ 2 * 2 * 2053 ดังนั้นฉันไม่เห็นวิธีง่าย ๆ ในการสร้าง
fredoverflow

Bah ตรวจสอบกับการหารจำนวนเต็มว่า8212/'b' == 'S':(
MSalters

และ octal ไม่ทำงานเช่นกัน (02014 = 1036 = 37 * 28, 28 ไม่สามารถพิมพ์ได้)
MSalters

1
@ FredOverflow แล้ววิธีแก้ปัญหาถ่าน 28 ตัวของฉันล่ะ? main () {ใส่ (__ วันที่ __ + '\ a');}
อรุณประศาสราชกุมาร

20

มา 14

'> '" * '^ - .      

1
คุณอธิบายได้ไหมว่ามันทำงานอย่างไร
ProgramFOX

1
ฉันแสดงค่าคงที่จำนวนเต็มเป็นตัวอักษรตัวอักษรโดยใช้ค่าเลขลำดับ (ASCII) ดังนั้นนี่คือ: 62 34 * 94 - . ถ้าคุณไม่ได้พูดออกมา, print (62 * 34 - 94)ที่นี้หมายถึง
Darren Stone

Forth (Gforth 0.7.0), 5 ไบต์, 4 ตัวอักษร: 'ߞ .มันพิมพ์อักขระ
18446744073709551615

20

GolfScript, 14

'-+,/'{)))))}%

มันทำงานอย่างไร: ASCII มีลักษณะเช่นนี้:

...
+
,
-
.
/
0
1
2
3
4
...

ดังนั้นจะใช้รหัส ASCII ของตัวละครแต่ละตัวลบห้าและเกาะมันในสตริง

{...}%ใช้อาร์เรย์ของอักขระของสตริงที่แม็พเมื่อกำหนดสตริงเป็นอาร์กิวเมนต์ ดังนั้นมันจะเพิ่มอักขระแต่ละตัวทีละ 5 ( )หมายถึงการเพิ่มขึ้น)


+ที่สิ้นสุดไม่จำเป็น นอกจากนี้แทนที่จะเพิ่มขึ้น 5 ครั้งเพียงแค่เพิ่มห้าครั้ง ประหยัดทั้งหมด: 4 ตัวอักษร '-+,/'{5+}%
Justin

15
@Quincunx 5เป็นตัวเลข
Peter Taylor

5
@PeterTaylor ฉันลืมไปตลอด
Justin

วิธีแก้ปัญหาที่ชาญฉลาด
Sumurai8 8

เวอร์ชั่น CJam ของสิ่งนี้: "-+,/"_,)f+. :) (จากนั้นอีกครั้งมี CJam KD)
มาร์ตินเอนเดอร์

19

Python 32 ตัวอักษร

print ord(',')*ord('-')+ord('"')

อาจเป็นไปได้ที่จะลดขนาดลงโดยใช้ Unicode char ปี 2014 ߞแต่ฉันไม่ได้ลอง

Quincunx ตั้งข้อสังเกตว่า

a=ord('.');print a*a-ord('f')

สั้นลงสามตัวอักษร


รุ่น Unicode ทำงานอย่างน้อยในหลาม 3 print(ord("ߞ"))IDLE: ดูเหมือนจะไม่ทำงานใน Python 2 Python 2 อาจไม่รองรับ Unicode
Justin

3
นอกจากนี้สำหรับรุ่นของคุณa=ord('.');print(a*a-ord('f'))จะสั้นกว่า 2 ตัวอักษร
Justin

@Quincunx มันรองรับ แต่คุณต้องมีการเข้ารหัสที่กำหนดไว้ในไฟล์ของคุณและผนวกuที่ส่วนท้ายของสตริง (จะ"ߞ"u)
Kroltan

2
@ Kroltan ที่จริงแล้วฉันค่อนข้างมั่นใจว่าส่วนที่สองนั้นไม่เป็นความจริง ในหลาม 2 คุณต้องย่อหน้าสตริงกับuจะบอกว่าพวกเขาเป็น Unicode แต่ในหลาม 3 สตริงทั้งหมดโดยอัตโนมัติ Unicode
murgatroid99

1
คล้ายกับที่แสดงความคิดเห็นข้างต้นโดยไม่ใช้ Unicode print ord('.')**2-ord('f')จะสั้นกว่าเล็กน้อย
MLS

18

APL (6 ไบต์, 4 ตัวอักษร)

⊃⎕TS

ทำงานได้เฉพาะปีนี้เท่านั้น

ทำไมมันถึงได้ผล

      ⎕TS
2014 1 1 11 58 5 811
      ⊃⎕TS
2014

โดยไม่ต้องพึ่งพาวันที่ของระบบมันคือ10 ไบต์ (7 ตัวอักษร):

⎕UCS'ߞ'

6
น่าเสียดายที่คำตอบที่ใช้งานได้สำหรับปีนี้ไม่ถูกต้องเท่านั้น
Joe Z.

ฉันไม่รู้จัก APL: กล่องสี่เหลี่ยมนั้นเป็นถ่าน APL หรือฉันไม่มีการแสดงแบบอักษร (Chrome)
Carl Witthoft

@JoeZ .: คำถามไม่ได้บอกว่า แต่ฉันได้เพิ่มหนึ่งที่ไม่ได้พึ่งพามันเป็นปี 2014
marinus

4
@CarlWitthoft: มันเรียกว่ารูปสี่เหลี่ยม ( ) มันควรจะมีลักษณะเช่นนั้น
marinus

18

Python 32 10 ไบต์, 91 85 (66 ที่mathนำเข้าโดยค่าเริ่มต้น) ไบต์บริสุทธิ์ทางคณิตศาสตร์

มีความสนุกสนานเขียนนี้:

my_lst = []
for i in range(33, 126):
    for j in range(i, 126):
        if 2014 - 126 < i * j < 2014 - 33:
            if j not in range(48, 58):
                my_lst.append("ord('" + unichr(i) +
                              "')*ord('" + unichr(j) +
                              "')+ord('" + unichr(2014 - i * j) + "')")

for val in my_lst:
    print val, '->', eval(val)

พิมพ์วิธีที่เป็นไปได้ทั้งหมดที่ฉันสามารถเขียนได้2014โดยใช้วิธีการของBruno Le Floch (32 ตัวอักษร):

ord('!')*ord(':')+ord('d') -> 2014
ord('!')*ord(';')+ord('C') -> 2014
ord('!')*ord('<')+ord('"') -> 2014
ord('"')*ord(':')+ord('*') -> 2014
ord(')')*ord('/')+ord('W') -> 2014
ord('*')*ord('-')+ord('|') -> 2014
ord('*')*ord('.')+ord('R') -> 2014
ord('*')*ord('/')+ord('(') -> 2014
ord('+')*ord(',')+ord('z') -> 2014
ord('+')*ord('-')+ord('O') -> 2014
ord('+')*ord('.')+ord('$') -> 2014
ord(',')*ord(',')+ord('N') -> 2014
ord(',')*ord('-')+ord('"') -> 2014

แต่สิ่งนี้ซ้ำซ้อนอย่างเห็นได้ชัดดังนั้นหากล่ามของคุณถูกตั้งค่าเป็น utf-8 โดยค่าเริ่มต้นสิ่งที่ต้องทำคือ:

>>> ord(u'ߞ')
2014

นอกจากนี้ขอขอบคุณAmeliaBR (สำหรับความคิด) ฉันพยายามอย่างดีที่สุดในการใช้คณิตศาสตร์แบบบริสุทธิ์:

from math import*
a,b,c=int(e),round(e),ceil(pi);print int(a**(b*c-(c-b))-a*a**c-a)

ord (',') ** 2 + ord ('N')
MLS

6
@MLS ดีที่มีหลักในนั้น :)
โจอาคิม Isaksson

2
ฉันปรับรุ่นคณิตศาสตร์ของคุณให้เหมาะสม: a,b=int(e),int(pi);c=a+a;print a**(b*c-c+b)-a*a**c-aและคุณสามารถกำจัดการนำเข้าคณิตศาสตร์ทั้งหมดโดยการใช้ประโยชน์จากความจริงที่ว่าTrueใน Python 2.x นั้นเหมือนกับเลขจำนวนเต็ม 1 ในการดำเนินการทำให้มีความยาวสูงสุด 50 อักขระ:o=True;a=o+o;b=a+o;c=b+o;print a**(b*c-o)-a*a**c-a
Ponkadoodle

คุณสามารถบันทึกอักขระได้ถ้าคุณใช้ Python 3:ord('ߞ')
asmeurer

@JoachimIsaksson ตัวเลขไม่มีตัวเลข;)
Mega Man

17

R (20 ตัวอักษร)

@popojan (เขายังไม่ได้รับอนุญาตให้โพสต์คำตอบที่นี่) ได้ให้บริการโซลูชั่นภายใน 20 ตัวอักษร

sum(T+T:exp(T+pi))-T

เอาท์พุท:

> sum(T+T:exp(T+pi))-T
[1] 2014

R (22 ตัวอักษร)

ผู้ใช้ที่ไม่ระบุชื่อได้แนะนำวิธีแก้ปัญหาที่สั้นกว่า

strtoi("bbc",pi*pi+pi)

2014อยู่BBCในฐาน 13 pi*pi+pi(= 13.0112) ได้รับการจัดการโดย R ในบริบทนี้เป็นจำนวนเต็ม 13 เอาต์พุต:

> strtoi("bbc",pi*pi+pi)
2014

R (30 ตัวอักษร)

ขอบคุณ @Tomas!

cat(a<-T+T,T-T,T/T,a*a,sep="")

เอาท์พุท:

> cat(a<-T+T,T-T,T/T,a*a,sep="")
2014

R (31 ตัวอักษร)

cat(T+T,T-T,T/T,T+T+T+T,sep="")

แรงบันดาลใจจากคำตอบโดย AmeliaBR เอาท์พุท:

> cat(T+T,T-T,T/T,T+T+T+T,sep="")
2014

ว้าว +1! และฉันหวังว่าวิธีแก้ปัญหาตัวเลขโรมันของฉันจะดีที่สุด ... :( ;-)
Tomas

ตัวแปรด้านล่างสามารถทำให้สั้นลงได้: cat(a<-T+T,T-T,T/T,a^a,sep="")(30 ตัวอักษร), paste0(aT+T,T-T,T/T,a^a)(26 ตัวอักษร)
โทมัส

@Tomas ฟังก์ชั่นไม่ได้รับอนุญาตเนื่องจากมีสัญลักษณ์paste0 0วิธีการแก้ปัญหาของคุณทำให้ 30 catตัวอักษรถ้าใช้
djhurio

สร้างไฟล์2014ในไดเรกทอรีปัจจุบันและเขียนlist.files()- 12 ตัวอักษร
Zbynek

@ Zbynek ฉันคาดว่าทางออกของคุณจะไม่ถูกต้องในขอบเขตทั่วไปของกฎ codegolf
djhurio

15

ชวา - 77 75 ตัวอักษร

75 ตัวอักษรหากprintมีการเพิ่มในชั้นเรียนด้วยวิธีการหลัก:

class C{public static void main(String[]a){System.out.print('#'*'<'-'V');}}

มันหมายความว่า35*60-86ซึ่งเท่ากับ 2014


2
ฉันชอบสูตรของคุณ
โยฮันเนส

7
สิ่งนี้จะต้องมีความยาวมากกว่าเดิมเพราะคำจำกัดความของคลาสจะต้องอยู่ในการเรียกใช้ วิธีที่สั้นที่สุดที่ฉันรู้ (กับ Java 6):class a{static{System.out.println('#'*'<'-'V');}}
Justin

1
@Quincunx ซึ่งใช้ Java 7 จำเป็นต้องใช้วิธีการหลัก
True Soft

2
@TrueSoft Note ฉันพูดว่า "with Java 6" คุณควรเลือก Java ที่สั้นที่สุดเท่าที่จะเป็นไปได้
Justin

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