ฉันเพิ่มแหล่งที่มาเป็นสองเท่าคุณเพิ่มเอาต์พุตเป็นสองเท่า!


127

งานของคุณถ้าคุณต้องการที่จะยอมรับมันคือการเขียนโปรแกรมที่แสดงผลเป็นจำนวนเต็มบวก (สูงกว่า 0) ส่วนที่ยุ่งยากคือถ้าฉันทำซ้ำซอร์สโค้ดของคุณเอาต์พุตจะต้องเป็นจำนวนเต็มสองเท่าต้นฉบับ

กฎระเบียบ

  • คุณต้องสร้างโปรแกรมเต็มรูปแบบ นั่นคือผลลัพธ์ของคุณจะต้องพิมพ์ไปที่ STDOUT

  • แหล่งที่มาเริ่มต้นจะต้องมีความยาวอย่างน้อย 1 ไบต์

  • จำนวนเต็มทั้งสองต้องอยู่ในฐาน 10 (ห้ามส่งออกในฐานอื่นหรือด้วยเครื่องหมายทางวิทยาศาสตร์เป็นสิ่งต้องห้าม)

  • โปรแกรมของคุณจะต้องไม่รับอินพุต (หรือมีอินพุตที่ไม่ได้ใช้และว่างเปล่า)

  • อนุญาตให้แสดงเอาต์พุตจำนวนเต็มด้วยการเว้นวรรคต่อท้าย / นำหน้า

  • คุณไม่สามารถรับบรรทัดใหม่ระหว่างสำเนาของแหล่งที่มาของคุณ

  • นี่คือดังนั้นรหัสที่สั้นที่สุด (ต้นฉบับ) ในแต่ละภาษาชนะ!

  • มีการใช้ช่องโหว่เริ่มต้น

ตัวอย่าง

สมมติว่ารหัสที่มาของคุณและผลผลิตที่สอดคล้องกันของมันคือABC 4ถ้าผมเขียนแทนและเรียกใช้การส่งออกจะต้องมีABCABC8

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

นี้ใช้ใช้@ รูปแบบของ


2
@ Mr.Xcoder แล้วฉันจะต้องรวมไว้ในแหล่งที่มาของตัวเอง
steenbergh

3
@ Mr.Xcoder ฉันคิดว่าคุณควรป้องกันการอ่านซอร์สโค้ดของคุณเอง
caird coinheringaahing

1
มันจะต้องทำงานเมื่อสองเท่าครั้งเดียว ? เราไม่จำเป็นต้องให้การสนับสนุนn doublings จำนวนมาก?
Cody Gray

6
@Daniel สมมติว่าแหล่งที่มาของคุณคือ `` (โปรแกรมเปล่า) และมันสร้าง5ขึ้นมา หากคุณเพิ่มเป็นสองเท่าซอร์สโค้ดของคุณคือ `` (โปรแกรมว่างเปล่า) และนั่นก็ให้ผล5เช่นกันไม่ว่าคุณจะทำอะไรก็ตาม ที่ถูกกล่าวว่าโปรแกรมว่างที่ซ้ำกันยังคงเป็นโปรแกรมที่ว่างเปล่าและจะสร้างผลลัพธ์เดียวกันเสมอยกเว้นกรณีที่โปรแกรมเปล่าหมายถึงอย่างอื่น (ตัวสร้างตัวเลขสุ่ม) ซึ่งไม่สามารถใช้งานได้
นาย Xcoder

1
สิ่งนี้ไม่ควรยากสำหรับ esolang ที่จะถ่ายโอนข้อมูลด้านบนของสแต็คโดยอัตโนมัติเมื่อมีการยกเลิกโปรแกรม
MD XF

คำตอบ:


152

Python 2 , 33 ไบต์

print len(open(__file__).read())#

ลองออนไลน์!

ลองเพิ่มเป็นสองเท่า

Python 3 , 28 ไบต์

print(len(*open(__file__)))#

ลองออนไลน์!

ลองเพิ่มเป็นสองเท่า

คำอธิบาย

นี่เป็นการเปิดซอร์สโค้ดโดยใช้open(__file__)และทำให้มันยาวขึ้นโดยใช้lenการ#ป้องกันโค้ดเพิ่มเติมจากการอ่าน เมื่อแหล่งกำเนิดเป็นสองเท่าความยาว


28
ว้าวฉันตกตะลึง ... มันเยี่ยมมาก!
Mr. Xcoder

2
32 ไบต์ ทำงานได้โดยใช้โหมดต่อท้ายโดยตั้งค่าตำแหน่งปัจจุบันไปที่ท้ายไฟล์ tell()ส่งคืนตำแหน่งปัจจุบันในไฟล์
Halvard Hummel

@HalvardHummel Nice อย่างไรก็ตามฉันไม่มีความตั้งใจที่จะปรับปรุงคำตอบนี้ หากคุณต้องการโพสต์ด้วยตัวคุณเองมันมีความแตกต่างอย่างมากในความคิดของฉัน
Sriotchilism O'Zaic

@WheatWizard นั่นเป็นที่เข้าใจฉันได้ตอบ
Halvard Hummel

96

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

ลองออนไลน์!

หรือลองสองครั้ง!

ฉันไม่รู้ว่ามันใช้งานได้อย่างไร แต่ดูเหมือนว่ามันใช้ได้


55
ช่วงเวลานั้นเมื่อคุณไม่รู้ว่าคุณเขียนอะไร ...
นาย Xcoder

2
ห่าฉันแค่คิดว่า 8 นาทีนี้สายเกินไป
HyperNeutrino

17
ลิงก์ทั้งหมดต้องมีการโต้แย้ง หากองค์ประกอบแรกของ chain เป็น nilad ผลลัพธ์จะกลายเป็นอาร์กิวเมนต์และลิงก์จะถูกเรียกใช้แบบ monadically หากไม่มี nilad นำหน้าจะใช้0แทน
Dennis

65

Google ชีต11 5 ไบต์

สูตรเวิร์กชีตแบบไม่ระบุชื่อที่ไม่มีอินพุตและเอาต์พุตลงในเซลล์ที่เก็บสูตร

=4/(2

ในฐานะสูตรเดี่ยวสิ่งนี้จะประเมินเป็น call stack ที่มีลักษณะคล้าย ๆ กัน

=4/(2
=4/(2)
=4/2
=2
2

อย่างไรก็ตามเมื่อสูตรแผ่นงานนี้เป็นสองเท่าของ call stack นี้จะประเมินค่าลงไป

=4/(2=4/(2
=4/(2=4/(2)
=4/(2=4/(2))
=4/(2=2)
=4/(True)
=4/True
=4/1
=4
4

แน่นอนนัยของการใช้วิธีนี้คือการที่ครั้งนี้จะซ้ำมากกว่าหนึ่งครั้งที่สามและการทำซ้ำต่อไปนี้ทุกปัญหาสาย stack จะเข้าถึง=4/(2=4)และทำให้การประเมินลงไป=4/0และโยน#DIV/0!ข้อผิดพลาด

-6 ไบต์โดยเปลี่ยนเป็นพีชคณิตห่างจาก=DIVIDE(4,2สูตร


18
ไม่เคยคาดหวังว่า Google ชีตจะใช้ในการเล่นกอล์ฟ วิธีแก้ปัญหาที่ฉลาด
hucancode

11
@hucancode สิ่งที่น่าสนใจจริงๆเกี่ยวกับเรื่องนี้ก็คือเพราะ Excel เกิดข้อผิดพลาดถ้าคุณแยก)คำตอบต่อท้ายนี้เป็นคำตอบเดียวของ Google ชีตที่ฉันเห็นว่าไม่ได้แปลเป็นคำตอบของ Excel
Taylor Scott

45

05AB1E , 2 ไบต์

เป็นต้นฉบับ

XO

ลองออนไลน์!

สองเท่า

XOXO

ลองออนไลน์!

คำอธิบาย

Xดัน1ไปที่สแต็ก
Oสรุปสแต็ค


48
XOXO ทางออกที่ดี
Mr. Xcoder

4
คุณทำอย่างนั้นโดยตั้งใจในขณะที่คุณรู้ว่าคุณสามารถใช้1O!
Erik the Outgolfer

12
พวกคุณพบภาษาไร้สาระเหล่านี้ที่ไหน
DavidB

7
@DavidB โดยปกติแล้วพวกเขาเขียนพวกเขา
Federico Poloni

3
@DavidB ใช่คนประดิษฐ์ภาษาสำหรับ codegolf และใช่พวกเขาสามารถได้คะแนนต่ำอย่างน่าประทับใจ แต่การทำสิ่งที่โง่เช่นการประดิษฐ์ภาษาหลังจากความท้าทายในการแก้ปัญหาใน 1 ไบต์ไม่ได้รับอนุญาตและการเขียนโปรแกรมในภาษาเหล่านี้มักจะห่างไกลจาก ง่าย.
แยกผลไม้

43

C (gcc), 37 ไบต์

i;main(){putchar(i+49);}/*
i=1;//*///

ไฟล์ไม่มีบรรทัดขึ้นบรรทัดใหม่

รุ่นสองเท่าสำหรับการเน้นไวยากรณ์:

i;main(){putchar(i+49);}/*
i=1;//*///i;main(){putchar(i+49);}/*
i=1;//*///

การเชื่อมโยง TIO: เดี่ยว , คู่


3
คุณช่วยอธิบายวิธีการทำงานของมันได้มั้ย ทำไมความคิดเห็นถึงไม่แสดงความคิดเห็นเลย?
phil294

10
เมื่อคุณเท่าของรหัสที่มาที่/*จะออกความเห็นโดย//ซึ่งหมายความว่าต่อไปนี้i=1คือ uncommented วิธีนี้ง่ายกว่าที่จะดูว่าคุณใส่รหัสรุ่นสองเท่าในปากกาเน้นข้อความไวยากรณ์หรือไม่
musicman523

1
โอ้โหเป็นคำนิยามที่ไม่แน่นอน ดี
aschepler

39

Hexagony , 7 ไบต์

/)!@.).

พิมพ์ 1 เป็นประจำจากนั้น 2 เท่า

ลองออนไลน์! หรือ ลองออนไลน์เป็นสองเท่า!

รุ่นที่ขยาย:

ปกติ:

 / )
! @ .
 ) .

สองเท่า

  / ) !
 @ . ) .
/ ) ! @ .
 ) . . .
  . . .

โปรแกรมปกติตามพา ธ : /)!.@ซึ่งเพิ่มขอบหน่วยความจำ (ทั้งหมดถูกกำหนดค่าเริ่มต้นเป็นศูนย์) จากนั้นพิมพ์ค่าตัวเลข โปรแกรมเพิ่มขึ้นสองเท่าดังต่อไปนี้: /.)/)!@ซึ่งเพิ่มขอบสองครั้งก่อนที่จะพิมพ์แทน


6
ว้าวทำได้ดีมาก ฉันถือว่าคุณพบว่าด้วยมือ? เนื่องจาก 6 ไบต์อยู่ในช่วงเดรัจฉานฉันคิดว่าฉันควรจะออกไปและมีวิธีแก้ปัญหา 4 ไบต์: [@!)(และโซลูชัน570 5 ไบต์บางตัว) เนื่องจากคุณไปพบปัญหาในการหาวิธีแก้ปัญหาด้วยตนเองฉันมีความสุขอย่างสมบูรณ์แบบที่คุณจะโพสต์โซลูชัน 4 ไบต์
Martin Ender

1
หากคุณสนใจนี่คือรายการทั้งหมดรวมถึงหมายเลขที่พิมพ์: pastebin.com/TtRujjA4
Martin Ender


36

Braingolf 1 ไบต์

+

ลองออนไลน์!

ตอนนี้เรากำลังคุยกัน!

เอาท์พุ20ทหรือ40เมื่อแหล่งที่มาเป็นสองเท่า

คำอธิบาย

+ แน่นอนว่าตัวดำเนินการ "รวม", "เพิ่ม" หรือ "บวก" ใน Braingolf อย่างไรก็ตามมันมีฟังก์ชันแบบ dyadic, monadic และ niladic

เมื่อมีอย่างน้อย 2 รายการในสแต็กมันจะเป็น dyadic และจะรวม 2 รายการบนสุดของสแต็ก

เมื่อมีเพียง 1 รายการในสแต็กมันเป็นแบบ monadic และจะเพิ่มเป็นสองเท่าของรายการ

เมื่อไม่มีรายการในสแต็คมันเป็น niladic และกด 20!

ทำไมถึงกด 20 เพราะโปรแกรม Braingolf ที่ว่างเปล่าพิมพ์บรรทัดใหม่ขึ้นมาและค่า ASCII ของ newline คือ 10 ดังนั้นฉันจึงคิดว่าฉันจะ+ผลักดันniladic 20 ดังนั้นมันจึงเหมือนกับว่ามันเป็น monadic จริง ๆ ในการขึ้นบรรทัดใหม่โดยนัย (แม้ว่าจะไม่ได้อยู่ที่ ทั้งหมด)

ดังนั้น:

+   No input
+   Niladic sum, Push 20
    Implicit output

และเมื่อสองเท่า:

++  No input
+   Niladic sum, Push 20
 +  Monadic sum, Double top of stack
    Implicit output

28

Haskell , 26 18 ไบต์

main=print$0
 +1--

ลองออนไลน์!

สองเท่า

main=print$0
 +1--main=print$0
 +1--

ลองออนไลน์!

ฉันพบรุ่นนี้ในขณะที่ตอบรุ่นที่ท้าทายหลายฉบับ


รุ่น 26 ไบต์โดยไม่มีการแสดงความคิดเห็น:

main|n<-1,nmain<-2=print n

ลองออนไลน์! 1พิมพ์

ในยามแบบแผนระบุnมีการตั้งค่า1และnmainการ2แล้วพิมพ์print n1

โปรแกรมคู่:

main|n<-1,nmain<-2=print nmain|n<-1,nmain<-2=print n

ลองออนไลน์! 2พิมพ์

ใน Guard รูปแบบแรกอีกครั้งnถูกตั้งค่าเป็น1และnmainเป็น2อย่างไรก็ตามคำสั่งพิมพ์กลายเป็นprint nmainดังนั้น2ถูกพิมพ์ เนื่องจากการประกาศตัวระบุในตัวป้องกันรูปแบบประเมินเป็นจริงจึงไม่สามารถเข้าถึงตัวป้องกันรูปแบบที่สองได้


23

Mathematica ขนาด 5 ไบต์

(1+1)

เอาท์พุท 2 และ (1 + 1) (1 + 1) เอาท์พุท 4

และแน่นอน (หลายคนถาม)

Mathematica ขนาด 3 ไบต์

(2)

1
ไม่(2)ทำงาน?
geokavel

9
@geokavel 2และพื้นที่จะใช้งานได้ตามที่ควรจะเป็น+1แต่ควรสังเกตว่าสิ่งเหล่านี้ถือว่าสภาพแวดล้อมโน้ตบุ๊คของ Mathematica
Martin Ender

1
หากคุณเรียกใช้มันใน opencloud Mathematica Sandbox ช่องว่างเดียวจะกลายเป็นxเช่นนั้นจะ2 ส่งออก2และ2 2 กลายเป็น2x2 ที่พิมพ์ 4 คุณสามารถเพิ่มที่เป็นโซลูชั่นทางเลือก
Mr. Xcoder

2
(2)ทำงานได้เช่นกัน
Mr. Xcoder

6
2 ทำงานได้เช่นกัน
alephalpha

17

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

({}())

ลองออนไลน์!

คำอธิบาย

สิ่งนี้ควรชัดเจน {}คว้าค่าจากสแต็กซึ่งเป็นศูนย์โดยปริยายที่จะเริ่มต้นด้วยการ ()เพิ่มหนึ่งไปยังมันและ(...)ผลักดันค่า ในการรันครั้งที่สองเนื่องจากมี 1 บนสแต็กอยู่แล้วนี่จะเพิ่มอีก 1 เข้าไปเพื่อทำให้สอง ในความเป็นจริงถ้าคุณคัดลอกโค้ดครั้งก็มักจะเอาท์พุทnn


17

> <> , 7 6 ไบต์

-1 ไบต์ขอบคุณนกกระทุง Teal

\ln;
0

ลองออนไลน์!
ลองสองเท่า!

คำอธิบาย

ฉันใช้0แต่ฉันก็สามารถใช้1- 9, a- fเพราะพวกเขาทั้งหมดผลักดันค่าเดียวลงบนสแต็ก

ไม่สองเท่า:

\ redirects execution down
0 pushes zero onto stack; STACK: [0]
  (IP wraps around the bottom)
\ redirects execution right
l pushes stack length (1) onto stack; STACK: [0, 1]
n pops off the top value (1) and prints it; STACK: [0]
; end of execution

สองเท่า

\ redirects execution down
0 pushes zero onto stack; STACK: [0]
0 pushes zero onto stack; STACK: [0, 0]
  (IP wraps around the bottom)
\ redirects execution right
l pushes stack length (2) onto stack; STACK: [0, 0, 2]
n pops off the top value (2) and prints it; STACK: [0, 0]
; end of execution

5
ยินดีต้อนรับสู่ PPCG! นี่เป็นคำตอบแรกที่ดีพร้อมคำอธิบายที่ดีมากและรหัสที่ดี คุณได้รับ upvote ของฉัน!
Mr. Xcoder

1
ฉันเพิ่งเห็นคำตอบนี้และมันยอดเยี่ยมมาก! การปรับปรุงที่ดีมากสำหรับคู่รัก> <> คำตอบ (รวมถึงของฉัน!) - ดูที่ลิงค์ TIO ที่นี่; tio.run/##S8sszvj/PyYnz5rLAEL@/w8A - สิ่งที่ฉันทำไปทั้งหมดคือย้าย 0 ไปที่ช่องว่างและประหยัด 1 ไบต์ :)
นกกระทุงนกเป็ดน้ำ

1
@Tealpelican ขอบคุณ! ฉันไม่อยากจะเชื่อเลยว่าฉันพลาดการปรับปรุงแบบง่ายๆ (จริงๆแล้วฉันทำได้ฉันไม่ได้ใช้> <> มากและฉันใหม่กับการเล่นกอล์ฟ!) พูดตามตรงฉันไม่ได้ดูรายละเอียดวิธีแก้ปัญหาอื่น ๆ จริง ๆ ฉันเห็นพวกเขาค่อนข้างใหญ่และตัดสินใจที่จะ ลองตีกอล์ฟปัญหาเพราะมันจะง่ายต่อการแข่งขัน
Borka223

1
คำตอบที่ดี! แค่อยากจะชี้ให้เห็นว่านี้จะใช้วิธีการเช่นเดียวกับคำตอบของฉันไคลน์ (ไม่กล่าวหาว่าคุณลอกเลียนแบบฉันถ้ามีใครสักคนกำลังชี้ให้เห็นคำตอบที่คล้ายกันสองคำ)
Sriotchilism O'Zaic

14

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


1

ลองออนไลน์!

2พิมพ์ พิมพ์เป็น4สองเท่า

1สามารถถูกแทนที่ด้วยสิ่งที่สวยมากอื่น

คำอธิบาย


1

1แทนที่การป้อนข้อมูลที่ว่างเปล่ากับ


นับจำนวนการแข่งขันที่ว่างเปล่า1ซึ่งเป็นสอง (หนึ่งก่อน1และอีกหนึ่งหลังจากนั้น)

หากเราเพิ่มโปรแกรมเป็นสองเท่าเราจะได้เวทีเพิ่มเติมเช่นช่วงแรก เวลานี้มันแทรกก่อนและหลังการเริ่มต้นหนึ่งให้1 111เมื่อเรานับจำนวนการแข่งขันของ regex เปล่าเราจะได้สี่


14

Python REPL ขนาด 2 ไบต์

สามารถใช้งานใน Pip, Dyalog APL, JavaScript, J และ R

+1

ตอนนี้ฉันกำลังสร้าง TIO อยู่ฉันไม่สามารถเอา Python มาใช้แทน TIO ได้


1
+1เป็นสิ่งที่ฉันจะทำ: P แต่ยี้คุณนินจาฉันโดยประมาณหนึ่งนาที> <
HyperNeutrino

1
สิ่งนี้ยังทำงานใน Dyalog APL
วัวต้มตุ๋น


1
คุณไม่สามารถใช้สิ่งนี้และสิ่งนี้สำหรับ REPL หรือไม่?
มนุษย์โดยรวม

1
คุณมี +1 ของฉัน
Federico Poloni

12

Neim 1 ไบต์

>

เพียงเพิ่มส่วนบนสุดของสแต็ก

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

ลองออนไลน์!

ทางเลือกอื่น:

เพิ่ม 2 แทน 1


12

JavaScript ขนาด 38 ไบต์

setTimeout('alert(i)',i=1)/*
i++//*///


setTimeout('alert(i)',i=1)/*
i++//*///setTimeout('alert(i)',i=1)/*
i++//*///


1
ทำได้ดีนี่! คุณสามารถทำi++อะไรได้บ้าง
Arnauld

@ Arnauld: แน่นอนขอบคุณสำหรับคำแนะนำ!
เบอนัวต์เอสนาร์ด

12

Java8, 135 118 110 ไบต์

เดี่ยวพิมพ์ 8

interface T{static void main(String[]a){System.out.print(Byte.SIZE);}}/*
class Byte{static int SIZE=16;}/**///

เพิ่มเป็นสองเท่าพิมพ์ 16

interface T{static void main(String[]a){System.out.print(Byte.SIZE);}}/*
class Byte{static int SIZE=16;}/**///interface T{static void main(String[]a){System.out.print(Byte.SIZE);}}/*
class Byte{static int SIZE=16;}/**///

ตัวอย่างคำตอบ 118 ไบต์

เดี่ยวพิมพ์ 1

interface T{static void main(String[]a){System.out.print(T.class.getResource("B.class")==null?1:2);}}/*
enum B{}/**///

พิมพ์สองเท่าสองเท่า

interface T{static void main(String[]a){System.out.print(T.class.getResource("B.class")==null?1:2);}}/*
enum B{}/**///interface T{static void main(String[]a){System.out.print(T.class.getResource("B.class")==null?1:2);}}/*
enum B{}/**///

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

java-compiler สร้างไฟล์เดียวสำหรับทุกคลาสในไฟล์ต้นฉบับ ดังนั้นฉันสามารถตรวจสอบว่ามีทรัพยากรที่มีชื่อ B.class อยู่หรือไม่


คำตอบดั้งเดิม 135 ไบต์

เดี่ยวพิมพ์ 1

interface T{static void main(String[]a){int i=1;try{Class.forName("B");i=2;}catch(Exception e){}System.out.print(i);}}/*
enum B{}/**///

พิมพ์สองเท่าสองเท่า

interface T{static void main(String[]a){int i=1;try{Class.forName("B");i=2;}catch(Exception e){}System.out.print(i);}}/*
enum B{}/**///interface T{static void main(String[]a){int i=1;try{Class.forName("B");i=2;}catch(Exception e){}System.out.print(i);}}/*
enum B{}/**///

สิ่งที่คุณทำกับความคิดเห็นนั้นเจ๋งจริงๆ แต่คุณต้องการบรรทัดใหม่จริง ๆ หรือไม่
vikarjramun

โอ้ nmm ไม่ได้สังเกตเห็นความคิดเห็นบรรทัดเดียวในบรรทัดที่สอง
vikarjramun

11

Python 2 , 32 ไบต์

print open(__file__,"a").tell()#

ลองออนไลน์!

ซอร์สโค้ดคู่

คำอธิบาย

นี่เป็นการเปิดไฟล์ซอร์สโค้ดในโหมดต่อท้าย

open(__file__,"a")

จากนั้นเราจะค้นหาตำแหน่งปัจจุบันในไฟล์นี้จะอยู่ท้ายไฟล์เนื่องจากการเปิดในโหมดต่อท้าย

open(__file__,"a").tell()

เราพิมพ์ความยาวนี้

print open(__file__,"a").tell()

และเพิ่มความคิดเห็นเพื่อให้ซอร์สโค้ดสองเท่าไม่สามารถเรียกใช้โค้ดเพิ่มเติมได้

print open(__file__,"a").tell()#

9

Excel VBA ขนาด 12 ไบต์

ไม่ประสงค์ออกนาม VBE [A1]ฟังก์ชั่นหน้าต่างทันทีที่ใช้ข้อมูลจากและผลในช่วง ค่าเริ่มต้นของช่วง[A1]คือ""(สตริงว่าง) และหลังจากการดำเนินการหนึ่งครั้งต่อไปนี้จะตั้งค่านี้1และเพิ่มขึ้น1ด้วยการดำเนินการที่ตามมาทั้งหมด

[A1]=[A1+1]:

อินพุต / เอาต์พุต

เวอร์ชั่นเดียว

[A1]=[A1+1]:
?[A1]    ''# display the value of [A1] to the VBE immediate window
 1

เวอร์ชันสองเท่า

[A1]=[A1+1]:[A1]=[A1+1]:
?[A1]    ''# display the value of [A1] to the VBE immediate window
 2

8

Japt 1 ไบต์

Ä

ลองออนไลน์!
ลองสองเท่า!
ทำซ้ำได้นานขึ้นเช่นกัน!

ค่อนข้างง่าย Japt transpiles ไปยัง JS และÄtranspiles ไปยัง+ 1ดังนั้นÄÄtranspiles ไปยัง+ 1 + 1และอื่น ๆ


ฉันเพิ่งจะโพสต์สิ่งเดียวกันด้วยÉ- โชคดีที่ฉันสแกนคำตอบก่อน
Shaggy

8

Huskขนาด 3 ไบต์

|1"

ลองออนไลน์!

ความคิดดั้งเดิมสำหรับสิ่งที่ฉันได้เห็นในคำตอบอื่น ๆ

คำอธิบาย

|ใน Husk เป็นตัวดำเนินการ "หรือ" ซึ่งส่งคืนอาร์กิวเมนต์ที่สองหากเป็น thruthy มิฉะนั้นเป็นอาร์กิวเมนต์แรก เมื่อนำไปใช้กับข้อโต้แย้งของประเภทที่แตกต่างกันในตอนแรกมันจะเปลี่ยนพวกเขาทั้งหมดเป็นตัวเลข: การแปลงสำหรับสตริง (และรายการโดยทั่วไป) จะกระทำโดยการคำนวณความยาวของพวกเขา

ในโปรแกรมดั้งเดิมเราใช้|กับ 1 และสตริงว่างซึ่งได้รับการแปลงเป็น 0: ผลลัพธ์คือ 1

ในโปรแกรมสองเท่าเราใช้|กับ 1 และสตริง "| 1" ซึ่งได้รับการแปลงเป็น 2: ผลลัพธ์คือ 2



7

CJam, 3 ไบต์

5],

ลองออนไลน์

Encapsulate 5 ในอาร์เรย์ ส่งคืนความยาวของอาร์เรย์ เมื่อคุณทำซ้ำรหัสความยาวที่ส่งคืนก่อนหน้านี้ 1 อยู่ในสแต็กแล้วดังนั้นคุณจะได้รับอาร์เรย์เป็น [1,5] ซึ่งจะส่งกลับความยาว 2



7

Wumpus , 4 ไบต์

" O@

ลองออนไลน์!

" O@" O@

ลองออนไลน์!

พิมพ์รหัสตามปกติและเป็นสองเท่าหนึ่งพิมพ์3264

คำอธิบาย

"ทำงานเหมือนที่ทำใน Fungeoids อื่น ๆ : สลับโหมดสตริงโดยที่รหัสอักขระแต่ละตัวถูกผลักไปที่สแต็กแทนที่จะเรียกใช้คำสั่ง อย่างไรก็ตามในทางตรงกันข้ามกับ Fungeoids อื่น ๆ ส่วนใหญ่สนามเด็กเล่นของ Wumpus ไม่ได้ล้อมรอบดังนั้น IP จะสะท้อนกลับไปยังจุดสิ้นสุดและตีกลับไปมาผ่านโค้ดแทน

ดังนั้นสำหรับโปรแกรมเดี่ยวรหัสต่อไปนี้จะถูกดำเนินการจริง:

" O@O " O@

32, 79, 64, 79, 32สตริงผลักดัน จากนั้นพื้นที่ไม่ได้ทำอะไรOพิมพ์32และ@สิ้นสุดโปรแกรม

สำหรับโปรแกรมเพิ่มเป็นสองเท่าสตริงจะถูกยกเลิกแทนก่อนที่ IP จะเด้งกลับมาดังนั้นโค้ดจะถูกสำรวจครั้งเดียวเท่านั้น:

" O@" O@

เวลานี้สตริงผลักดัน32, 79, 64การOพิมพ์64และ@สิ้นสุดโปรแกรม

นี่ดูเหมือนจะเป็นโซลูชัน 4 ไบต์เท่านั้น


6

,,,, 2 ไบต์

1∑

คำอธิบาย

1∑

1   push 1
 ∑  pop everything and push the sum of the stack

ฉันขาดอะไรไปหรือเปล่านั่นจะเป็น 3 สำหรับซอร์สโค้ดสองเท่าหรือไม่?
เทย์เลอร์สกอตต์

@TaylorScott ฉันขอโทษฉันควรสังเกตว่าองค์ประกอบทั้งหมดที่ปรากฏในกอง
มนุษย์โดยรวม

1
นั่นทำให้รู้สึกมากขึ้น - ขอบคุณสำหรับการชี้แจง
เทย์เลอร์สกอตต์

ซิกมาสองไบต์ใช่ไหม?
nishantjr

1
@nishantjr ,,, ใช้หน้ารหัสของตัวเองซึ่งมีการเชื่อมโยงในส่วนหัว
สิ้นเชิง

6

แบตช์ 13 ไบต์

@echo %~z0
:

คำอธิบาย: %~z0ขยายความยาวของไฟล์ต้นฉบับดังนั้นการเพิ่มความยาวไฟล์เป็นสองเท่า บรรทัดที่สองกำหนดป้ายกำกับว่างซึ่งไม่ทำอะไรเลย เมื่อไฟล์เป็นสองเท่ามันจะกลายเป็นป้ายชื่อ@echo %~z0แทนในขณะที่บรรทัดที่สามเป็นป้ายกำกับที่ว่างเปล่าอีก


6

QBasic,  44  28 ไบต์

นอกจากนี้ยังไม่มีการขึ้นบรรทัดใหม่ในตอนท้าย ส่งออก4เมื่อเดียว8เมื่อเป็นสองเท่า

4
READ x,y
?x+y
END
DATA 4,0

คำอธิบาย

สำหรับรุ่นเดียว:

  • 4 เป็นหมายเลขบรรทัด
  • READ x,yใช้เวลาสองค่าแรกจากDATAคำสั่งและเก็บไว้ในและx yดังนั้นจึงxได้รับ4และได้รับy0
  • ?x+y เพิ่มตัวเลขสองตัวและพิมพ์ออกมา
  • END ออกจากโปรแกรม

ในรุ่นสองเท่าDATAคำสั่งจะกลายเป็นDATA 4,04ซึ่งกำหนด4ให้ทั้งสองxและyทำให้x+yเท่าเทียมกัน8แทน


6

Befunge-98 , 5 ไบต์

90g.@

ลองออนไลน์!

gรับค่าตัวอักษรที่พิกัด (9, 0) ใน Funge-Space .พิมพ์มันเป็นจำนวนเต็มและ@หยุดโปรแกรม ในรุ่นที่ไม่มีสองเท่า (9, 0) อยู่นอกขอบเขตของโปรแกรมและ Funge-Space นอกโปรแกรมนั้นเริ่มต้นเป็นค่าเริ่มต้นของช่องว่างดังนั้นเราจึงพิมพ์ 32 ในรุ่นสองเท่า (9, 0) เป็น@ตัวละครดังนั้นเราจึงพิมพ์ 64


นี่ไม่ใช่สิ่งที่ฉันคาดหวังคำตอบ Befunge-98 ที่ดีที่สุดเพื่อดูเหมือน ... คำตอบที่สร้างสรรค์จริงๆ!
MildlyMilquetoast


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