Scheint eine unmögliche Aufgabe zu sein, oder? Nun, es ist eigentlich nicht so schwer. Wenn wir das Wort Infinity
als 8-Bit-Binär-ASCII-Code schreiben , erhalten wir:
01001001 01101110 01100110 01101001 01101110 01101001 01110100 01111001
Dies kann verkettet und in den Dezimalwert konvertiert werden 5291279215216915577
. Das ist eine Nummer, mit der wir arbeiten können ...
Der Countdown läuft folgendermaßen ab:
- Die ursprüngliche Zeichenfolge als Dezimalzahl ausgeben (wie oben gezeigt)
- Entfernen Sie führende Nullen in der Binärdarstellung (falls vorhanden)
- Umschalten der Bits in der Binärdarstellung (1-> 0, 0-> 1)
- Geben Sie die Zahl dezimal aus
- Wiederholen Sie die Schritte 2 bis 4, bis Sie 0 erreichen.
Herausforderung:
Erstellen Sie ein Programm oder eine Funktion, die eine Zeichenfolge als Eingabe verwendet und (in einem geeigneten Format) die Zahlen ausgibt, die Sie beim Ausführen des obigen Verfahrens erhalten.
Testfall:
Ich denke, die Herausforderung wird ziemlich einfach zu verstehen sein, auch wenn es nur ein Testfall ist. Ich werde verwenden, Inf
anstatt Infinity
dies ziemlich kurz zu halten.
Inf
4812390 (10010010110111001100110)
3576217 ( 1101101001000110011001)
618086 ( 10010110111001100110)
430489 ( 1101001000110011001)
93798 ( 10110111001100110)
37273 ( 1001000110011001)
28262 ( 110111001100110)
4505 ( 1000110011001)
3686 ( 111001100110)
409 ( 110011001)
102 ( 1100110)
25 ( 11001)
6 ( 110)
1 ( 1)
0 ( 0)
Input: Inf
Output:
4812390, 3576217, 618086, 430489, 93798, 37273, 28262, 4505, 3686, 409, 102, 25, 6, 1, 0
Input: Infinity
Output:
5291279215216915577, 3932092821637860230, 679593196789527673, 473328307817319302, 103132444486104185, 40982743589751686, 31074850448176249, 4953946570787718, 4053252683953273, 450346943417222, 112603010004089, 28134478351238, 7049893737593, 1746199284614, 452823970937, 96931842950, 40507110521, 28212366214, 6147372153, 2442562438, 1852404857, 295078790, 241792121, 26643334, 6911097, 1477510, 619641, 428934, 95353, 35718, 29817, 2950, 1145, 902, 121, 6, 1, 0
Ihr Code muss Zeichenfolgen unterstützen, die bis zur Grenze Ihrer Sprache als Binärzahl dargestellt werden können. Alle Zeichenketten enthalten nur druckbare ASCII-Zeichen von 32-126 (Leerzeichen bis Tilde).
Bestenliste
var QUESTION_ID=98274,OVERRIDE_USER=31516;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
Inf:-1:0
∞..0
Antworten:
Jelly ,
1510 Bytes-5 Bytes dank @Dennis (konvertiere direkt von der Basis 256 nach der ordinalen Umwandlung)
TryItOnline!
Wie?
quelle
Oḅ⁹
.Python 2,
8982777675 BytesTeste es auf Ideone .
Wie es funktioniert
Nach der Initialisierung von n auf 0 führt die zweite Zeile die in den Abfragen angegebene Umwandlung von Zeichenfolge in Ganzzahl wie folgt aus.
In jedem Schritt wird n um 8 Einheiten nach links verschoben und dann mit dem Codepunkt des nächsten Zeichens c bitweise ODER- verknüpft . Für den Eingang Inf ist dies wie folgt.
Jetzt können wir die Ausgabe generieren. Um die Bits von n zu invertieren , gehen wir wie folgt vor.
Zuerst berechnen wir die Bits in der Binärdarstellung von n ohne führende Nullen. Nennen wir das Ergebnis k . Dann berechnen wir die k k Potenz von 2 , die k + 1 Binärziffern hat: eine einzelne 1 , gefolgt von k 0 . Wir subtrahieren 1 vom Ergebnis und erhalten eine aus k Einsen zusammengesetzte Zahl , die wir dann mit n XOR- verknüpft, um ihre Bits zu invertieren. Für die Eingabe von inf ist dies wie folgt.
Eine zusätzliche Hürde bei der Implementierung ist, dass wir n vor dem ersten Schritt, nach dem letzten Schritt und in allen dazwischen liegenden Schritten drucken müssen . Python hat keine do-while-Schleifen und eine einzelne print- Anweisung kostet 8 Bytes. Deshalb gehen wir stattdessen wie folgt vor.
Bei der unkomplizierten Durchführung des Update-Schritts, dh
wir ersetzen die Schleife durch eine unendliche (
while 1
) und berechnen die1
in der Schleife alsn/n
. Dies ist äquivalent, wenn n> 0 ist .Sobald n = 0 ist , bleiben wir in der Schleife, drucken den Status erneut und versuchen ihn zu aktualisieren. Löst jedoch
0/0
einen ZeroDivisionError aus , bricht die Schleife ab und wird mit einem Fehler beendet. Beachten Sie, dass dies zu einer Streuausgabe an STDERR führt, die standardmäßig zulässig ist .quelle
-n/n
Trick :-)n/n
Trick erklären ? Es ist wahrscheinlich in einer anderen Antwort erklärt worden, aber ich habe es nicht gefunden. Was macht es hier?JavaScript, 82 Byte
Ein Byte dank @Arnuald gespeichert
Eines der wenigen Male, wenn ein vollständiges Programm eine Funktion übertrifft (und ES6 ES5 nicht übertrifft) ...
Das Obige unterstützt Wörter mit bis zu 4 Buchstaben. Fügen Sie 4 Bytes hinzu, um Wörter mit bis zu 6 Buchstaben zu unterstützen:
quelle
g=a=>a[0]?a.pop().charCodeAt()+g(a)*256:0
(-1)n<<8|y.charCodeAt()
sollte ein Byte speichern.for(;n;)for(i=!alert(n);i<=n;i*=2)n^=i
würde ein weiteres Byte speichern, aber Sie werden nicht angezeigt0
, was wahrscheinlich erforderlich ist.n<<8
, entschied aber, dass es nicht funktionieren würde, weil es für n mit mehr als 31 Bits kaputt gehen würde. Ich nehme an, es ist jetzt egal, dass ich es bereits in eine 31-Bit-Version und eine 53-Bit-Version aufgeteilt habe Iteration und die letzte.Eigentlich 14 Bytes
Probieren Sie es online!
Erläuterung:
quelle
05AB1E , 18 Bytes
Verwendet CP-1252- Codierung.
Probieren Sie es online!
Erläuterung
quelle
MATL , 13 Bytes
Probieren Sie es online!
Erläuterung
quelle
Mathematica, 99 Bytes
Anonyme Funktion. Nimmt eine Zeichenfolge als Eingabe und gibt eine Liste von Zahlen als Ausgabe zurück.
quelle
Haskell,
10912311810297 BytesVielen Dank an @nimi für das Speichern von 5 Bytes!
Verwendungszweck:
(++[0]).fst.span(>0).iterate c.foldl((+).(256*))0.map fromEnum $ "Infinity"
Garantiert für die Bearbeitung von Zahlen mit bis zu 29 Bit in der Sprache. Bei 64-Bit-Systemen werden normalerweise bis zu 63-Bit-Zahlen verarbeitet. Verwenden Sie
map(fromIntegral.fromEnum)
stattdessen (+14 Byte), um beliebig große Zahlen zu unterstützen.Funktioniert für Unicode-Bereich
[0..255]
. Kehrt Bits rekursiv um.quelle
takeWhile(>0)
mitfst.span(>0)
. Wenn Sie frei gehen, können Sie den Namen fallen lassenf
, also ist Ihre Hauptfunktion(++[0]) ... map fromEnum
.f
.fromIntegral
? Aus der Herausforderung: "Muss unterstützen ... bis zu 63bit ... oder die Grenze Ihrer Sprache",Int
sollte also in Ordnung sein. Wenn Sie es behalten möchten, verschieben Sie es inmap
Ihre alte Version vonfoldl1
undmap(fromIntegral.fromEnum)
.PHP,
132126123120108107 Bytesunpack
stattstr_split
machtord()
obsolet -> -3 Bytes_
als Trennzeichen speichert 3.bindec
anstattltrim
führende Nullen zu entfernen: -12echo
Im Schleifenkörper wird 1 Byteprint
im Schleifenkopf gespeichert.quelle
$n=$n*256+$i;for(print$n;$n;)
als geschrieben werdenfor(print$n=$n*256+$i;$n;)
? Da der Zuweisungsteil einmal ausgeführt wird, sollte dies funktionieren. Und stattdessenecho _.$n=[...]
sollten Sieecho _,$n=[...]
stattdessen verwenden. Es speichert kein Byte, beschleunigt aber den Code um ein winziges kleines bisschen und trennt Anweisungen. Das heißt, dass beispielsweiseecho _,$a?5:6;
statt geschrieben werden kannecho _.($a?5:6);
. Dies kann in Zukunft hilfreich sein.print
in diesem Fall. Alleine keine Bearbeitung wert; aber danke.foreach(unpack("C*",$argv[1])as$i)
... Dummen Ich ... Und ja, einen Punkt für ein Komma zu ändern, um den gleichen Effekt zu erzielen, ist die Mühe nicht wert.Perl, 65 Bytes
53 Byte Code + 12 für
-Mbigint -p
.Vielen Dank an @ Dada für die Rettung von 13 Bytes!
Ein relativ einfacher Ansatz, der sich von den meisten unterscheidet, besteht darin, dass die Zahl als Binärzahl gespeichert und dezimal ausgedruckt wird. Ich bin mir sicher, dass es verbessert werden kann, wenn Details in einem Array gespeichert werden.
-Mbigint
ist etwas umständlich aber notwendig.Verwendungszweck
quelle
perl -Mbigint -lpE'$_=unpack"B*";say(0+"0b$_"),s/^0+//,y/10/01/while$_>0'
(Ich habe keine Ahnung, wie man normalerweise entpackt , ich habe gerade Glück gehabt, als ich gegoogelt habe, wie man einen String in Binär umwandelt ;-))unpack
die Syntax , die mich immer in den Bann zieht ! Ich werde aktualisieren, danke!echo -n
umsteigen , ist die einzige andere Änderung.Pyth, 12 Bytes
Ein Programm, das eine Zeichenfolge in Anführungszeichen eingibt und das Ergebnis als Liste von Ganzzahlen ausgibt.
Überprüfen Sie alle Testfälle
Wie es funktioniert
quelle
Python 3,
9995 BytesDie Hauptidee ist, eine Zeichenkette in Bytes in Zahlen umzuwandeln. Bei jeder Iteration werden die Ausgabe und das XOR mit allen Einsen gedruckt, um in Richtung Null voranzukommen.
quelle
2**x.bit_length()-1
. Die Reihenfolge der Operationen für Leistung und Subtraktion ist höher als xor. Dieswhile
kann auch in einer einzelnen Zeile erfolgen.P=print
und dann unter VerwendungP()
anstelle vonprint()
Python 2,
117115 Bytes2 Bytes sparen dank Cyoce.
Nimmt an, dass die Eingabe in Anführungszeichen eingeschlossen ist, z
"Inf"
m
zählt bis zur höchsten Ziffer, som-1
ist eine XOR-Maske zur Durchführung der gewünschten Operation. Der längste Teil konvertiert die Eingabe in die anfängliche Bitsequenz.Beispiel:
quelle
-i-1
mit~i
Ruby,
104101100818065 Bytes19 Bytes gespart dank @WayneConrad!
15 Bytes gespart dank @philomory!
1 Byte gespart dank @LeeW!
Übernimmt die Eingabe über Befehlszeilenargumente.
Inspiriert von @ JimmyJohnsons Python-Antwort
quelle
i.to_s(2).rjust 8,'0'
mit"%08b"%i
inject(:+)
kann mitjoin
unpack
gefolgt von,[0]
anstatt mit zu experimentierengsub
, spart 11 Bytes. Wenn Sie zu$*[0]
anstattgets.chop
(mit einem Befehlszeilenargument anstelle einer Konsoleneingabe) wechseln, werden weitere 9 gespeichert, die erste Zeile wirdp n=$*[0].unpack('B*')[0].to_i(2)
.Labyrinth ,
104103 BytesProbieren Sie es online!
Erläuterung:
Der Anweisungszeiger beginnt am obersten linken Rand des Nicht-Wand-Zeichens (Wände enthalten Leerzeichen und alle Buchstaben außer
v
).Orange:
Diese Schleife erhält die Eingabe zeichenweise als ASCII-Code, addiert sie zum aktuellen Wert und multipliziert den aktuellen Wert mit 256.
'
Nein-Op,
Schieben Sie den ASCII-Code des nächsten Eingabezeichens an den Anfang des Stapels oder -1, wenn EOF. Wenn zu diesem Zeitpunkt eine Eingabe empfangen wurde, dreht sich der Code nach rechts (nach unten), da die Oberseite des Stapels potenziell ist. Andernfalls wird es nach links gedreht, da die Oberseite des Stapels negativ ist.|
Pop die beiden obersten Elemente aus dem Stapel und drücken Sie das Ergebnis eines bitweisen ODER._
Null drücken256
Jede Ziffer erscheintx
und drücktx*10+digit
. Dies kombiniert mit dem Push-Null-Vorgänger-Push 256 an die Spitze des Stapels.*
Popy
, Popx
, Pushx*y
. Zu diesem Zeitpunkt dreht sich der Code nach rechts, um die Schleife zu durchlaufen, da die Oberseite des Stapels positiv ist.Blau:
)
Erhöhen Sie die Oberseite des Stapels. Wenn das Ende der Eingabe erreicht ist, dreht sich der Code nach links, um mit -1 auf dem Stapel zu diesem Punkt zu gelangen, der auf Null erhöht wird.256
Wenn wir die Spitze des Stapels 0 haben, können wir diese 256 verschieben./
Popy
, Popx
Pushx/y
(ganzzahlige Division). Da wir die Eingabe mit 256 pro Schleife multipliziert haben, müssen wir die letzte Multiplikation zurücksetzen.:
Duplizieren Sie den oberen Bereich des Stapels, damit wir eine Kopie des aktuellen Werts für später haben.!
Öffnen Sie den oberen Bereich des Stapels und geben Sie den ganzzahligen Wert in STDOUT aus.\
Drucken Sie eine neue Zeile._2
Schieben Sie eine Zwei nach oben auf den Stapel.}
Bewegen Sie die Oberseite des Stapels an die Oberseite des Hilfsstapels.Rot:
Diese Schleife kippt die Bits des aktuellen Werts durch XOR mit einem bestimmten Wert, der in der inneren (grünen) Schleife berechnet wurde. Es gibt dann den aktuellen Wert aus und beendet das Programm, wenn der aktuelle Wert Null ist.
_
Null drücken (Kontrollfluss).;
Verwerfen Sie die Oberseite des Stapels (Kontrollfluss).:
Duplizieren Sie den aktuellen Wert. Die Kopie wird zur Berechnung des XOR verwendet._
Null drücken (Kontrollfluss).$
Popy
, Popx
, Pushx XOR y
.:!
Duplizieren Sie den aktuellen Wert und drucken Sie die Ganzzahldarstellung.@
und enden.\
Drucken Sie eine neue Zeile._2}
Drücken Sie 2 und gehen Sie zum Aux-Stack._1
Drücken Sie 1 (Kontrollfluss).Grün:
Diese Schleife berechnet den Wert, um den wir den aktuellen Wert XOR benötigen. Dies erfolgt durch wiederholtes Verdoppeln der Oberseite des Zusatzstapels, während eine Kopie des aktuellen Werts auf dem Stopp des Hauptstapels halbiert wird, bis 0 erreicht ist.
_
Null drücken (Kontrollfluss).;
Verwerfen Sie den aktuellen Wert, der nur zum Erzwingen des Kontrollflusses verwendet wird._2
Drücken Sie 2, um den aktuellen Wert zu halbieren./
Teilen{
Bewegen Sie die Oberseite des Aux-Stapels an die Oberseite des Hauptstapels._2*
Verdoppeln Sie die Oberseite des Stapels}
Bewegen Sie die Oberseite des Hauptstapels zurück zum Aux-Stapel._1
Drücken Sie eine für den Kontrollfluss.;
Verwerfen Sie die verbleibende Null bei der Berechnung des XOR.{
Verschieben Sie das berechnete XOR in den Hauptstapel.(
Subtrahiere eins vom XOR-Wert.quelle
PowerShell v2 +, 158 Byte
Ja, das Konvertieren von Basen in PowerShell ist wirklich bescheuert . Und wir können es hier zweimal machen.
OK, das ist also nur eine
for
Schleife,$a
dh wir schleifen, solange es$a
existiert. Wir werden irgendwann eine leere Zeichenfolge erreichen (was falsch ist), also werden wir so enden.Der Aufbau der Schleife
$a=-join([char[]]$args[0]|%{([int][convert]::ToString(+$_,2)).ToString('0'*8)})
übernimmt die Eingabe$args[0]
,char
wandelt sie als -array um und durchläuft jedes Zeichen in einer Schleife. Wir verwenden .NET[convert]::ToString(int,base)
, um jeden in einen Binärstring umzuwandeln. Das schließt jedoch führende Nullen nicht ein, daher müssen wir diese Zeichenfolge als eine[int]
umwandeln und ihre.ToString()
Methode mit8
Nullen als Maske aufrufen . Dann werden diese Zeichenfolgen in Parens eingekapselt und-join
zusammengefügt und dann in gespeichert$a
.Innerhalb der Schleife
[convert]::ToInt64(string,base)
konvertieren wir die Binärzahl in eine Dezimalzahl. Dieser wird in der Pipeline belassen und anschließend gelöscht, wenn die Schleife zurückgesetzt wird (und daher implizit gedruckt wird). Der nächste Abschnitt führt die Berechnungen durch - wir.TrimStart()
entfernen alle führenden Nullen,-split0
teilen die Nullen auf und erhalten einstring
-array von1
s,-replace
die Einsen mit Nullen und schließlich-join
das Array wieder zusammen mit1
s. Dann beginnt die Schleife erneut.quelle
CJam ,
171618 BytesProbieren Sie es online!
HINWEIS: Die alte 16-Byte-Version hat sich bei leeren Zeichenfolgen nicht richtig verhalten:
Vielen Dank auch an Dennis ,
p
der vorgeschlagen hat, 1 Byte zu sparenN\
, wenn Zeilenumbrüche in den Stapel geschrieben werden.quelle
_p2b:!2b
Speichert ein Byte. Auch sollten Sie verwendenl
;r
schlägt fehl, wenn die Eingabe Leerzeichen enthält.q
wird mit leeren Zeichenfolgen korrekt funktionieren.J, 24 Bytes
Erklärung kommt später!
quelle
Netzhaut, 116 Bytes
Die Bytezahl setzt die ISO 8859-1-Codierung voraus. Zeile 5 enthält nicht druckbare Bytes. Es ist
T`\x00-\xFF
.Probieren Sie es online aus
Versuchen Sie dies nicht, wenn Sie mehr als zwei Zeichen eingeben. (Bei Verwendung des Online-Interpreters tritt eine Zeitüberschreitung auf.) Wir müssen die Binärzahl vor der Dezimalstelle in die Unärzahl umwandeln. : D
Leider gibt es eine nachgestellte Null und einen Zeilenvorschub, aber ich habe angenommen, dass dies in Ordnung ist, da die Ausgabe immer noch korrekt ist.
Erläuterung
quelle
Ruby - 70 Bytes
Das Programm wird mit einer Ausnahme nach Abschluss beendet, aber meines Wissens ist dies in Ordnung, solange die Fehlerausgabe an STDERR und nicht an STDOUT (was es tut) geht.
quelle
C,
147135133125122121117115103 Bytes5 Bytes gespart dank @Cyoce!
2 Bytes gespart dank @Cyoce und @cleblanc!
12 Bytes dank @ceilingcat gespart
Ungolfed:
quelle
int
Erklärungenwhile
Schleife in einefor
Schleifewhile(1)
zufor(;;)
int
Deklarationen überall zu entfernen und habegcc -std=89
Fehler bekommen. Aber danke für denfor(;;)
Tipp. Ich werde weiterhin versuchen, dieint
Erklärungen zu entfernen :)))i;main(c,v)char**v;{...}
). Ich bin gerade auf dem Handy, kann mir also nicht sicher seinC,
129120117110107105 BytesGetestet mit
Ausgabe
quelle
i=0
zur Deklaration von wechselni
und den Initialisierungsabschnitt derfor
Schleife leer lasseni
implizit global int ist, muss sie bei jedem Aufruf von f (...) initialisiert werden.i
wieder Null ist. Sie kann also weiter verwendet werden.C #,
360359 BytesVolles Programm:
quelle
var t="";var f="";
abervar t="",f=""
stattdessen sein? Spart 5 Bytes.