Ihre Aufgabe ist es, ein Programm zu schreiben, um die Summe der ASCII-Codes der Zeichen des Programms selbst zu drucken. Sie dürfen keine Datei öffnen (Eingaben wie Befehlszeilenargumente, Standardeingaben oder Dateien sind nicht zulässig).
Das Programm, das die niedrigste Zahl ausgibt (dh die niedrigste Summe von ASCII-Codes hat), gewinnt.
Hier ist ein Beispiel (nicht das kürzeste) eines solchen in C geschriebenen Programms:
#include <stdio.h>
int main(){
printf("4950");/*i*/
return 0;
}
(keine neue Zeile danach }
)
code-challenge
Alexandru
quelle
quelle
Antworten:
wc druckt 0
Jemand sagte "katzenähnliche Sprachen", also ...
Eine leere Datei:
Ausführen mit
wc -c file.wc
. Bei 0 Bytes denke ich, dass dies der Gewinner in der Kategorie "Nicht wirklich eine Programmiersprache" ist.Ebenfalls
Katze, druckt 80 (Basis 13)
Kein abschließender Zeilenvorschub, die Zahl 80 13 entspricht 104 dezimal. Sie können mit 60 17 (102 Dez) kürzer gehen , aber ich dachte, "Basis 13" wäre mehr Geek-Punkte wert.
EDIT: Neues
wc
Beispiel, dieses kann als Programm ausgeführt werden.(Wie in Latin-1 kodiert - das ÿ ist ein Byte mit dem Wert 255)
Die Summe der Bytes ist 2223, die Ausgabe ist:
quelle
wc -c
ist in der Frage sowieso verboten.0 0 0
(wenn die Datei, die als Datei übergeben wird, dies verbietet, werden alle Skriptsprachen verwendet) auch verboten)wc
, -1 für Base Cheating, +1 für Witze in Base 13.wc
ist eine Anwendung, keine Sprache.PHP, M4 und andere katzenähnliche Sprachen: 150
Wir haben diese Lösung mit einem einfachen Haskell-Programm gefunden, um sie zu brachialisieren:
quelle
5!
5!
ist 86, nicht 125.Brainf * ck, 255
Dadurch wird nicht die Nummer 255 gedruckt, sondern das 255. ASCII-Zeichen.
Dies kann als Betrug angesehen werden, da der BF-Compiler die ¤ überspringt.
quelle
¤
betrügt, da es nur ein normaler Kommentar ist.Javascript druckt
94326902Dies ist die erste Quine-Lösung, es sei denn, ich verstehe die Haskell- Lösung nicht richtig.
quelle
(function a(){b="("+a+")()";for(i=c=0;i<b.length;i++)c+=b.charCodeAt(i-0);alert(c)})()
Power Shell
druckt 310.
quelle
Perl, 500
Es gibt zwei Tabs zwischen
say
und500
. :)(Laufen Sie als Einzeiler mit
perl -E
, soweit ich das beurteilen kann, liegt dies innerhalb der Regeln)quelle
Rubin, druckt 380
Keine nachstehende Zeile nach der schließenden Klammer.
quelle
Power Shell
druckt offensichtlich 230.
quelle
Power Shell
druckt 320.
quelle
J 150
Mit dem Vorbehalt, dass es nur 1/720 der Zeit korrekt sein wird.
quelle
Python druckt 781
Zwei Räume.
quelle
Element, 220
Dies ist eine Sprache meiner eigenen Schöpfung, und sie ist in meiner Antwort auf eine andere Frage hier dokumentiert .
Hier ist eine exemplarische Vorgehensweise: Die
220
drückt diese Nummer auf den Stapel. Dann führt das ``outputs the top element of the stack. The
! `Ein logisches Nicht auf dem Kontrollstapel (ein separater Stapel) durch und setzt ihn auf 1.quelle
PHP, druckt 4440
quelle
PowerShell, druckt 3902
Untersucht die aktuell ausgeführte Zeile und summiert die Codepunktwerte.
quelle
INTERCAL, 1572
Ich kann nicht glauben, dass noch niemand INTERCAL gemacht hat!
(Beinhaltet das Beenden einer neuen Zeile.) Dieses Programm druckt MDLXXII aus.
quelle
Perl, druckt 690
Oder, wenn wir Einzeiler posten können (
perl -E
)Druckt 570.
(Keine nachgestellten Zeilenumbrüche)
quelle
JavaScript,
1750 900 860790alert(790)
(Wagenrücklauf (CR,
\r
oder\x0D
) nach oder vor dem Programm)Diese Programme werden durch Brute-Forcing gefunden.
Größere Werte:
quelle
Java -128
Ich weiß, dass stdin nicht erlaubt ist, aber ich wollte ein Beispiel dafür geben, wie ich meine Punktzahl berechnet habe.
Mein Code summiert die an stdin übergebene ASCII-Zählung von sich und gibt -128 aus
Keine nachgestellte neue Zeile
quelle
Rubin, druckt 300
Zwischen dem
p
und dem befindet sich ein Leerzeichen und ein Tabulator300
. Keine nachgestellte Newline.quelle
Batch-Dateien, 500
Beachten Sie auch die beiden Leerzeichen zwischen "ECHO" (absichtlich in Großbuchstaben) und "500".
quelle
C 1700
Seltsam - noch hat niemand eine C-Lösung gepostet (mit Ausnahme des Beispiels in der Frage).
Keine Newline am Ende.
quelle
K (
923 796 795 746)513)Ich bin mir nicht sicher, ob dies gegen die Regeln verstößt oder nicht. Es benutzt kein stdin, es öffnet sich als Vektor von Bytes und Summen.
Verwendung:
edit 2012.05.08 - keine Notwendigkeit, das Dateihandle zu hsym 2012.05.09 - 1 Punkt durch Konvertieren in Byte anstelle von int gespeichert
2012.05.17 - Kann eine Menge Punkte speichern, indem die Datei als bytestream anstatt als Text gelesen wird:
quelle
J, 198
und
Fand es mit roher Gewalt. In J gibt es keine 1- oder 2-Zeichen-Lösungen, und die einzige 3-Zeichen-Lösung ist
150
. Abgesehen von Fehlern in meiner Suche gibt es auch keine anderen 4-Zeichen-Lösungen.Aus dem IRC-Kanal #jsoftware hatten wir ebenfalls einen Stand
<.%:10!20
von 429 und einen selbstzählenden Stand von+/a.i.2#(,{:)'+/a.i.2#(,{:)'''
1706.quelle
bc 1160
Aufgerufen mit Echo und Leerzeichen hat der gesamte String, einschließlich 7 Leerzeichen,
echo 1160 | bc
ein Byte von 1160.150 arbeitet auch für bc:
quelle
D 9752
Dieser berechnet es tatsächlich ähnlich wie mein Quine
quelle
Whitespace, 369
Dieses Programm mit 20 Zeichen gibt die Zahl 369 aus, die die Summe der ASCII-Werte seiner Zeichen darstellt (Tab, Leerzeichen, Zeilenvorschubzeichen, hier symbolisiert durch T, S, L):
(369 = 7 * 9 + 8 * 32 + 5 * 10, wobei 7 Tabulatoren, 8 Leerzeichen und 5 Zeilenvorschübe vorhanden sind.)
quelle
Haskell, 7518
Eine kleine Modifikation meiner Quine :
quelle
Brainf * ck, 253 (oder 252)
Leichte Verbesserung der Lösung von Peter Olson:
Sofern nicht druckbare Dateien zulässig sind, können sie durch Hinzufügen eines
-
und ErsetzenH
durch ASCII-Code 26 weiter verbessert werden .quelle
Scala 1090
Druck (1090)
quelle
Python, 5440
Die höchste Punktzahl gewinnt, oder?
Ich dachte nur, ich würde es trotzdem posten, b / c, es ist eine halbherzige Lösung.
quelle