Ich verdopple die Quelle, du verdoppelst die Ausgabe!

127

Wenn Sie dies akzeptieren möchten, müssen Sie ein Programm schreiben, das eine positive Ganzzahl (höher als 0) ausgibt. Der schwierige Teil ist, dass, wenn ich Ihren Quellcode dupliziere, die Ausgabe doppelt so groß sein muss wie die ursprüngliche Ganzzahl.

Regeln

  • Sie müssen ein vollständiges Programm erstellen . Das heißt, Ihre Ausgabe muss auf STDOUT gedruckt werden.

  • Die ursprüngliche Quelle muss mindestens 1 Byte lang sein.

  • Beide Ganzzahlen müssen sich in der Basis 10 befinden (die Ausgabe in einer anderen Basis oder mit wissenschaftlicher Notation ist verboten).

  • Ihr Programm darf keine Eingaben annehmen (oder nicht verwendete, leere Eingaben haben).

  • Die Ausgabe der Ganzzahlen mit nachgestellten / führenden Leerzeichen ist zulässig.

  • Sie dürfen keinen Zeilenumbruch zwischen Kopien Ihrer Quelle annehmen.

  • Das ist , also gewinnt der kürzeste (ursprüngliche) Code in jeder Sprache !

  • Es gelten Standardlücken .

Beispiel

Angenommen, Ihr Quellcode ist ABCund die entsprechende Ausgabe ist 4. Wenn ich ABCABCstattdessen schreibe und es laufen lasse, muss die Ausgabe sein 8.

Bestenliste

Dies verwendet das Layout von @ manatwork .

Mr. Xcoder
quelle
2
@ Mr.Xcoder Dann muss ich einfach einen in meine eigene Quelle aufnehmen.
Steenbergh
3
@ Mr.Xcoder Ich finde, du hättest das Lesen deines eigenen Quellcodes verhindern sollen.
Caird Coinheringaahing
1
Es muss nur funktionieren, wenn es einmal verdoppelt wurde ? Wir brauchen nicht zu unterstützen n viele Verdoppelungen?
Cody Grey
6
@Daniel Angenommen, Ihre Quelle ist `` (leeres Programm) und es wird produziert 5. Wenn Sie es verdoppeln, ist Ihre Quelle `` (leeres Programm) und das produziert 5auch, egal was Sie tun. Abgesehen davon ist ein dupliziertes leeres Programm immer noch das leere Programm und erzeugt immer die gleiche Ausgabe, außer für den Fall, dass das leere Programm etwas anderes bedeutet (z. B. einen Zufallszahlengenerator), das ohnehin nicht gültig sein könnte.
Mr. Xcoder
1
Dies sollte für Esolangs nicht schwierig sein, die bei Programmbeendigung automatisch den obersten Stapel ausgeben.
MD XF

Antworten:

152

Python 2 , 33 Bytes

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

Probieren Sie es online!

Probieren Sie es doppelt aus

Python 3 , 28 Bytes

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

Probieren Sie es online!

Probieren Sie es doppelt aus

Erläuterung

Dies öffnet den Quellcode mit bis open(__file__)und erhält seine Länge mit lendem #verhindert , dass zusätzlichem Code gelesen werden. Wenn die Quelle verdoppelt wird, wird auch die Länge verdoppelt.

Sriotchilism O'Zaic
quelle
28
Wow, ich bin fassungslos ... Das ist so genial!
Mr. Xcoder
2
32 Bytes . Funktioniert im Anhänge-Modus und setzt die aktuelle Position an das Ende der Datei. tell()
Halvard Hummel
@HalvardHummel Schön. Ich habe jedoch nicht die Absicht, diese Antwort zu aktualisieren. Wenn Sie es selbst posten möchten, ist es meiner Meinung nach wesentlich anders.
Sriotchilism O'Zaic
@ WheatWizard Das ist verständlich, ich machte eine separate Antwort
Halvard Hummel
96

Gelee , 1 Byte

Probieren Sie es online!

oder Probieren Sie es doppelt aus!

Ich habe keine Ahnung, wie das funktioniert, aber anscheinend schon.

DJMcMayhem
quelle
55
In dem Moment, in dem Sie keine Ahnung haben, was Sie geschrieben haben ...
Mr. Xcoder
2
Verdammt, ich habe nur 8 Minuten zu spät daran gedacht.
HyperNeutrino
17
Alle Links brauchen ein Argument. Wenn das erste Element der Kette ein Nil ist, wird das Ergebnis zum Argument und die Verknüpfung wird monadisch ausgeführt. Wenn es keinen führenden Nullen gibt, wird stattdessen 0 verwendet.
Dennis
65

Google Sheets, 11 5 Bytes

Anonyme Arbeitsblattformel, die keine Eingaben und Ausgaben in die Zelle übernimmt, in der sich die Formel befindet

=4/(2

Als einzelne Formel ergibt dies einen Aufrufstapel, der ungefähr so ​​aussieht

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

Wenn diese Arbeitsblattformel jedoch verdoppelt wird, wird dieser Aufrufstapel bis auf ausgewertet

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

Die Verwendung dieser Methode impliziert natürlich, dass, wenn dies mehr als einmal wiederholt wird, der Aufrufstapel bei der dritten und allen folgenden Iterationen des Problems einen Fehler erreicht =4/(2=4)und somit auswertet =4/0und auslöst#DIV/0!

-6 Bytes durch Umschalten auf Algebra außerhalb der =DIVIDE(4,2Formel

Taylor Scott
quelle
18
Niemals erwartet, dass Google Sheets Code Golf verwendet. Clevere Lösung
Hucancode
11
@hucancode das wirklich interessante daran ist, dass, weil Excel einen Fehler auslöst, wenn Sie die nachfolgenden ausschließen ), diese Antwort die einzige Google Sheets-Antwort ist, die ich gesehen habe und die sich nicht in eine Excel-Antwort umsetzt
Taylor Scott
45

05AB1E , 2 Bytes

Original

XO

Probieren Sie es online!

Verdoppelt

XOXO

Probieren Sie es online!

Erläuterung

X drückt 1 zum Stapel.
O summiert den Stapel.

Emigna
quelle
48
XOXO, schöne Lösung.
Mr. Xcoder
4
Sie haben das mit Absicht getan, obwohl Sie wussten, dass Sie es auch hätten tun können 1O!
Erik der Outgolfer
12
Wo findet ihr diese lächerlichen Sprachen?
DavidB
7
@ DavidB Normalerweise schreiben sie sie.
Federico Poloni
3
@DavidB Ja, Leute erfinden Sprachen für Codegolf, und ja, sie können beeindruckend niedrige Punktzahlen erzielen, aber alberne Dinge wie das Erfinden einer Sprache nach der Aufforderung, sie in 1 Byte zu lösen, sind verboten, und das Programmieren in diesen Sprachen ist normalerweise weit davon entfernt einfach.
Esolanging Fruit
43

C (gcc), 37 Bytes

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

Die Datei enthält keine nachgestellte Newline.

Doppelte Version, zur Hervorhebung der Syntax:

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

TIO-Verbindungen: einfach , doppelt .

Türknauf
quelle
3
Können Sie bitte erklären, wie das funktioniert? Warum sollte der Kommentar jemals unkommentiert sein?
Phil294
10
Wenn Sie den Quellcode verdoppeln, /*wird das durch das auskommentiert //, was bedeutet, dass das Folgende nicht kommentiert i=1ist. Dies ist einfacher zu erkennen, wenn Sie die doppelte Version des Codes in einen Syntax-
Textmarker einfügen
1
Whoa, ein vorläufiger Definitionstrick. Nett.
Aschepler
39

Hexagony , 7 Bytes

/)!@.).

Drucke 1 regelmäßig, dann 2 verdoppelt.

Probieren Sie es online! oder Online verdoppelt!

Erweiterte Versionen:

Regulär:

 / )
! @ .
 ) .

Verdoppelt:

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

Das reguläre Programm folgt dem Pfad: Es /)!.@inkrementiert eine Speicherflanke (alle werden auf Null initialisiert) und gibt dann ihren numerischen Wert aus. Es folgt /.)/)!@das doppelte Programm: Stattdessen wird die Kante vor dem Drucken zweimal erhöht.

FryAmTheEggman
quelle
6
Wow schöne Arbeit. Ich nehme an, Sie haben das von Hand gefunden? Da sich 6 Byte im Brute-Force-Bereich befinden, dachte ich, ich würde es versuchen, und es gibt tatsächlich eine 4-Byte-Lösung: [@!)(und einige 570 5-Byte-Lösungen). Da Sie sich tatsächlich die Mühe gemacht haben, eine Lösung von Hand zu finden, freue ich mich, dass Sie die 4-Byte-Lösung veröffentlichen.
Martin Ender
1
Wenn Sie interessiert sind, finden Sie hier die vollständige Liste mit der gedruckten Nummer: pastebin.com/TtRujjA4
Martin Ender
36

Braingolf , 1 Byte

+

Probieren Sie es online!

Jetzt reden wir!

Ausgänge 20oder 40wenn die Quelle verdoppelt wird.

Erläuterung

+ ist natürlich der "Summe" -, "Add" - oder "Plus" -Operator in Braingolf, hat jedoch dyadische, monadische und niladische Funktionen.

Wenn sich mindestens 2 Gegenstände auf dem Stapel befinden, ist es dyadisch und summiert die obersten 2 Gegenstände des Stapels.

Wenn sich nur 1 Gegenstand auf dem Stapel befindet, ist er monadisch und verdoppelt den Gegenstand.

Wenn sich keine Gegenstände auf dem Stapel befinden, ist er gleich Null und drückt 20!

Warum drückt es 20? Nun, weil ein leeres Braingolf-Programm einfach eine neue Zeile ausgibt und der ASCII-Wert einer neuen Zeile 10 ist, dachte ich, ich würde niladic +push 20 machen , also ist es so, als wäre es tatsächlich monadisch auf der impliziten neuen Zeile (obwohl es nicht bei ist) alle)

Deshalb:

+   No input
+   Niladic sum, Push 20
    Implicit output

Und wenn verdoppelt:

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

Haskell , 26 18 Bytes

main=print$0
 +1--

Probieren Sie es online!

Verdoppelt:

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

Probieren Sie es online!

Ich habe diese Version gefunden, als ich auf die dreifache Version der Challenge geantwortet habe .


26-Byte-Version ohne Missbrauch von Kommentaren:

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

Probieren Sie es online! Druckt 1.

Im Musterschutz wird die Kennung nauf 1und nmainauf gesetzt und 2dann print ngedruckt 1.

Doppelprogramm:

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

Probieren Sie es online! Druckt 2.

Im ersten Muster ist guard wieder nauf 1und nmainauf gesetzt 2, jedoch wurde die print-Anweisung print nmainso 2gedruckt. Da Bezeichnerdeklarationen in einem Pattern Guard als wahr ausgewertet werden, kann der zweite Pattern Guard niemals erreicht werden.

Laikoni
quelle
23

Mathematica, 5 Bytes

(1+1)

Ausgänge 2 und (1 + 1) (1 + 1) Ausgänge 4

und natürlich (wie viele von euch gefragt haben)

Mathematica, 3 Bytes

(2)
J42161217
quelle
1
Hat (2)zu arbeiten?
Geokavel
9
@geokavel 2und ein Leerzeichen würden funktionieren, +1aber es sollte beachtet werden, dass alle diese Mathematica Notebook-Umgebung annehmen
Martin Ender
1
Wenn Sie es in der Opencloud Mathematica Sandbox laufen, ein einziger Raum wird x, so dass 2 Ausgaben 2und 2 2 wird 2x2 den Druck 4. Sie , dass als alternative Lösung hinzufügen.
Mr. Xcoder
2
(2)funktioniert auch.
Mr. Xcoder
6
2 funktioniert auch.
Alephalpha
17

Brain-Flak , 6 Bytes

({}())

Probieren Sie es online!

Erläuterung

Was dies tut, sollte ziemlich klar sein. {}greift nach einem Wert aus dem Stapel, der anfangs implizit null ist, ()addiert eins dazu und verschiebt (...)den Wert. Beim zweiten Durchgang, da bereits eine 1 auf dem Stapel vorhanden ist, wird nur eine weitere 1 hinzugefügt, um zwei zu erhalten. In der Tat, wenn Sie den Code nmal kopieren , wird es immer ausgegeben n.

Sriotchilism O'Zaic
quelle
17

> <> , 7 6 Bytes

-1 Byte dank Teal Pelican

\ln;
0

Probieren Sie es online!
Probieren Sie es doppelt aus!

Erläuterung

Ich habe a verwendet, 0aber ich hätte auch 1- 9, a- verwenden können , fweil alle einen einzelnen Wert auf den Stapel schieben.

Nicht verdoppelt:

\ 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

Verdoppelt:

\ 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
Borka223
quelle
5
Willkommen bei PPCG! Dies ist eine großartige erste Antwort mit einer sehr gut durchdachten Erklärung und gutem Code. Du hast meine Zustimmung verdient!
Mr. Xcoder
1
Ich habe diese Antwort gerade gesehen und es ist großartig! Sehr nette Verbesserung der Antworten des Paares> <> (einschließlich meiner!) - Schauen Sie sich hier den TIO-Link an; tio.run/##S8sszvj/PyYnz5rLAEL@/w8A - Alles, was ich getan habe, ist die 0 in das Leerzeichen zu verschieben und es spart 1 Byte. :)
Teal Pelikan
1
@Tealpelican Danke! Ich kann nicht glauben, dass ich eine so einfache Verbesserung verpasst habe. (Tatsächlich kann ich, ich benutze nicht sehr viel> <> und ich bin neu im Golfen!) Um ehrlich zu sein, habe ich mir die anderen Lösungen nicht wirklich im Detail angesehen, ich sah, dass sie relativ groß waren und entschied mich dafür Versuchen Sie, das Problem zu lösen, da es einfacher wäre, an Wettkämpfen teilzunehmen.
Borka223,
1
Gute Antwort! Ich wollte nur darauf hinweisen, dass dies die gleiche Methode wie meine Klein-Antwort verwendet . (Ich beschuldige Sie nicht, mich zu kopieren. Wenn das jemand wäre, der nur auf zwei ähnliche Antworten hinweist.)
Sriotchilism O'Zaic
14

Netzhaut , 3 Bytes


1

Probieren Sie es online!

Druckt 2. Verdoppeln druckt 4.

Der 1kann durch so ziemlich alles andere ersetzt werden.

Erläuterung


1

Ersetzt die leere Eingabe durch 1.


Zählt die Anzahl der leeren Übereinstimmungen, bei 1denen es sich um zwei handelt (eine vor der 1und eine nach der).

Wenn wir das Programm verdoppeln, erhalten wir eine zusätzliche Stufe wie die erste. Diesmal fügt es ein 1vor und nach dem ersten ein und gibt 111. Wenn wir nun die Anzahl der Übereinstimmungen des leeren Regex zählen, erhalten wir vier davon.

Martin Ender
quelle
14

Python REPL, 2 Bytes

Funktioniert auch in Pip, Dyalog APL, JavaScript, J und R

+1

Ich mache gerade ein TIO. Ich konnte Python Repl nicht für TIO verwenden

Sriotchilism O'Zaic
quelle
1
+1ist genau das, was ich tun werde: P aber verdammt, du hast mich um ungefähr eine Minute
ninja'd
1
Dies funktioniert auch in Dyalog APL.
Kühe quaken
Polygolt
Mr. Xcoder
1
Könnten Sie dies und das nicht für eine REPL verwenden?
Totalhuman
1
Du hast meine +1.
Federico Poloni
12

Neim , 1 Byte

>

Erhöht einfach die Oberseite des Stapels.

Man kann sich den Stapel als eine unendliche Anzahl von Nullen vorstellen, um anzufangen, also erhöht sich dieser Wert um null, um eins zu werden, und verdoppelt sich, erhöht sich erneut, um zwei zu erhalten.

Probieren Sie es online!

Eine alternative Lösung:

Addiert 2 anstelle von 1.

Okx
quelle
12

JavaScript, 38 Bytes

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


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

Benoit Esnard
quelle
1
Schön! Könnten Sie einfach tun i++?
Arnauld
@Arnauld: ja danke für den vorschlag!
Benoit Esnard
12

Java8, 135 118 110 Bytes

Single , druckt 8

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

Verdoppelt , druckt 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;}/**///

Vorschau-Antwort, 118 Bytes

Single , druckt 1

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

Verdoppelt , druckt 2

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{}/**///

Wie das geht

Der Java-Compiler erstellt für jede Klasse in der Quelldatei eine einzelne Datei. Daher kann ich einfach überprüfen, ob eine Ressource mit dem Namen B.class vorhanden ist.


Ursprüngliche Antwort, 135 Bytes

Single , druckt 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{}/**///

Verdoppelt , druckt 2

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{}/**///
Edwardth
quelle
Was du mit dem Kommentar gemacht hast, ist wirklich cool. Aber brauchen Sie wirklich die neue Leitung?
Vikarjramun
Oh nvm, habe den einzeiligen Kommentar in der zweiten Zeile nicht bemerkt
vikarjramun
11

Python 2 , 32 Bytes

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

Probieren Sie es online!

Doppelter Quellcode

Erläuterung

Dadurch wird die Quellcodedatei im Anhänge-Modus geöffnet

open(__file__,"a")

Wir finden dann die aktuelle Position in der Datei, diese befindet sich am Ende der Datei, da sie im Anhänge-Modus geöffnet wird

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

Wir drucken diese Länge

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

Und fügen Sie einen Kommentar hinzu, damit das Verdoppeln des Quellcodes keinen weiteren Code ausführt

print open(__file__,"a").tell()#
Halvard Hummel
quelle
9

Excel VBA, 12 Bytes

Anonyme VBE-Direktfensterfunktion, die Eingaben von und Ausgaben in den Bereich übernimmt [A1]. Der Standardwert des Bereichs [A1]ist ""(leere Zeichenfolge). Nach einer Ausführung wird dieser Wert auf gesetzt 1und 1bei allen nachfolgenden Ausführungen um inkrementiert .

[A1]=[A1+1]:

Input-Output

Single Version

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

Doppelte Version

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

Schale , 3 Bytes

|1"

Probieren Sie es online!

Eine originelle Idee für das, was ich in anderen Antworten gesehen habe.

Erläuterung

|in Husk ist ein "oder" -Operator, der sein zweites Argument zurückgibt, wenn es wahr ist, andernfalls das erste Argument. Bei Anwendung auf Argumente unterschiedlichen Typs werden zunächst alle in Zahlen umgewandelt. Die Umwandlung für Zeichenfolgen (und Listen im Allgemeinen) erfolgt durch Berechnung ihrer Länge.

Im ursprünglichen Programm wenden wir |1 und eine leere Zeichenfolge an, die in 0 konvertiert wird: Das Ergebnis ist 1.

Im doppelten Programm wird |1 und der String "| 1" verwendet, der in 2 konvertiert wird. Das Ergebnis ist 2.

Löwe
quelle
7

CJam, 3 Bytes

5],

Probieren Sie es online

Verkapseln Sie 5 in einem Array. Länge des Arrays zurückgeben. Wenn Sie Code duplizieren, befindet sich die zuvor zurückgegebene Länge 1 bereits auf dem Stapel, sodass Sie ein Array von [1,5] erhalten, das die Länge 2 zurückgibt.

Geokavel
quelle
7

Wumpus , 4 Bytes

" O@

Probieren Sie es online!

" O@" O@

Probieren Sie es online!

Der normale 32und der doppelte Code werden gedruckt 64.

Erläuterung

"Funktioniert wie in vielen anderen Fungeoids: Schaltet den Zeichenkettenmodus um, in dem jeder einzelne Zeichencode auf den Stapel geschrieben wird, anstatt den Befehl auszuführen. Im Gegensatz zu den meisten anderen Fungeoids wird das Spielfeld von Wumpus jedoch nicht umbrochen, sodass die IP-Adresse stattdessen vom Ende reflektiert wird und durch den Code hin und her springt.

Für das einzelne Programm wird also tatsächlich der folgende Code ausgeführt:

" O@O " O@

Die Saite drückt 32, 79, 64, 79, 32. Dann macht der Space nichts, Odruckt 32und @beendet das Programm.

Für das verdoppelte Programm wird die Zeichenfolge stattdessen beendet, bevor die IP zurückspringt, sodass der Code nur einmal durchlaufen wird:

" O@" O@

Diesmal drückt der String 32, 79, 64, Odruckt das 64und @beendet das Programm.

Dies scheint die einzige 4-Byte-Lösung zu sein.

Martin Ender
quelle
6

,,,, 2 bytes

1∑

Erläuterung

1∑

1   push 1
 ∑  pop everything and push the sum of the stack
total menschlich
quelle
Vermisse ich etwas oder wäre das nicht 3 für einen doppelten Quellcode?
Taylor Scott
@ TaylorScott Es tut mir leid, ich hätte beachten sollen, dass alle Elemente auf dem Stapel angezeigt werden .
totalhuman
1
Das macht viel mehr Sinn - danke für die Klarstellung
Taylor Scott
Sigma ist zwei Bytes, nein?
Nishantjr
1
@nishantjr ,,, verwendet eine eigene Codepage, die im Header verlinkt ist.
Totalhuman
6

Batch, 13 Bytes

@echo %~z0
:

Erläuterung: %~z0Wird auf die Länge der Quelldatei erweitert, sodass durch das Verdoppeln der Datei einfach die Länge verdoppelt wird. Die zweite Zeile definiert ein leeres Etikett, das nichts tut. Wenn die Datei verdoppelt wird, wird sie @echo %~z0stattdessen zu einer Bezeichnung , während die dritte Zeile eine weitere leere Bezeichnung ist.

Neil
quelle
6

QBasic,  44  28 Bytes

Am Ende steht kein Zeilenumbruch. Ausgänge, 4wenn sie einzeln oder 8verdoppelt sind.

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

Erläuterung

Für die Single-Version:

  • 4 ist eine Zeilennummer.
  • READ x,yNimmt die ersten beiden Werte aus der DATAAnweisung und speichert sie in xund y. So xwird 4und ywird 0.
  • ?x+y addiert die beiden Zahlen und druckt sie aus.
  • END Beendet das Programm.

In der doppelten Fassung wird die DATAAnweisung DATA 4,04, die 4beiden zuweist xund ysomit stattdessen x+ygleich macht 8.

DLosc
quelle
6

Befunge-98 , 5 Bytes

90g.@

Probieren Sie es online!

gRuft den Zeichenwert an der Koordinate (9, 0) im Funge-Space ab. .Gibt es als Ganzzahl aus und @hält das Programm an. In der unverdoppelten Version ist (9, 0) außerhalb der Programmgrenzen, und der Funge-Space außerhalb des Programms wird auf den Standardwert eines Leerzeichens initialisiert, sodass wir 32 ausgeben. In der verdoppelten Version ist (9, 0) 0) ist das @Zeichen, also drucken wir 64.

betaveros
quelle
Ich hatte nicht erwartet, dass die beste Befunge-98-Antwort so aussieht ... wirklich kreative Antwort!
MildlyMilquetoast
Ich habe zu früh gesprochen ;)
MildlyMilquetoast