Votre tâche consiste à écrire un programme pour imprimer la somme des codes ASCII des caractères du programme lui-même. Vous n'êtes pas autorisé à ouvrir un fichier (toute entrée telle que les arguments de ligne de commande, l'entrée standard ou les fichiers est interdite).
Le programme qui imprime le plus petit nombre (c'est-à-dire qui a la plus petite somme de codes ASCII) gagne.
Voici un exemple (pas le plus court) d'un tel programme écrit en C:
#include <stdio.h>
int main(){
printf("4950");/*i*/
return 0;
}
(pas de nouvelle ligne après }
)
code-challenge
Alexandru
la source
la source
Réponses:
wc, imprime 0
Quelqu'un a dit "des langues de chat", alors ...
Un fichier vide:
Exécutez avec
wc -c file.wc
. À 0 octet, je pense que c'est le gagnant dans la catégorie «pas vraiment un langage de programmation».Aussi
chat, imprime 80 (base 13)
Pas de fin de ligne, le nombre 80 13 équivaut à 104 en décimal. Vous pouvez aller plus court avec 60 17 (102 déc), mais je pensais que "base 13" valait plus de points geek.
EDIT: Nouvel
wc
exemple, celui-ci peut être exécuté comme un programme.(Comme codé en latin-1 - le ÿ est un octet avec la valeur 255)
La somme des octets est 2223, la sortie est:
la source
wc -c
est de toute façon interdit dans la question.0 0 0
(si le fichier transmis en tant que fichier l'interdit, alors tous les langages de script sont également interdit)wc
, -1 pour la triche de base, +1 pour faire des blagues en base 13.wc
c'est une application, pas une langue.PHP, m4 et autres langages de type chat: 150
J'ai trouvé cette solution en utilisant un simple programme Haskell pour la forcer brutalement:
la source
5!
dans J.5!
est de 86, pas 125.Brainf * ck, 255
Cela n'imprimera pas le nombre 255, mais plutôt le 255e caractère ASCII.
Cela peut être considéré comme de la triche car le compilateur BF ignore le ¤.
la source
¤
soit de la triche, car c'est juste un commentaire normal.Javascript, imprime
94326902C'est la première solution quine jusqu'à présent, à moins que je ne comprenne pas correctement celle de Haskell .
la source
(function a(){b="("+a+")()";for(i=c=0;i<b.length;i++)c+=b.charCodeAt(i-0);alert(c)})()
PowerShell
imprime 310.
la source
Perl, 500
Il y a deux onglets entre
say
et500
. :)(Exécuter en monoplace avec
perl -E
, pour autant que je sache, cela est dans les règles)la source
Rubis, imprime 380
Pas de retour à la ligne après la parenthèse fermante.
la source
PowerShell
imprime 230, évidemment.
la source
PowerShell
imprime 320.
la source
J, 150
Avec la mise en garde qu'il ne sera correct que 1 / 720ème du temps.
la source
Python, estampes 781
Deux espaces.
la source
Élément, 220
Ceci est un langage de ma propre création, et il est documenté sur ma réponse à une autre question ici .
Voici une procédure pas à pas sur la façon dont cela fonctionne: Le
220
pousse ce nombre sur la pile. Ensuite, le ``outputs the top element of the stack. The
! `Exécute alors un pas logique sur la pile de contrôle (une pile séparée), en le mettant à 1.la source
PHP, imprime 4440
la source
PowerShell, imprime 3902
Examine la ligne actuellement exécutée et additionne les valeurs des points de code.
la source
INTERCAL, 1572
Je ne peux pas croire que personne n'ait encore fait INTERCAL!
(Inclut la fin de la nouvelle ligne.) Ce programme imprime MDLXXII.
la source
Perl, imprime 690
Ou, si nous pouvons poster des one-liners (
perl -E
)Imprime 570.
(Pas de retour à la ligne)
la source
JavaScript,
1750 900 860790alert(790)
(Retour chariot (CR,
\r
ou\x0D
) après ou avant le programme)Ces programmes sont détectés par forçage brutal.
De plus grandes valeurs:
la source
Java -128
Je sais que lire stdin n'est pas autorisé mais je voulais donner un exemple de la façon dont j'ai calculé mon score.
Mon code résume le nombre ASCII de lui-même transmis sur stdin et affiche -128
Pas de nouvelle ligne de fuite
la source
Rubis, imprime 300
Il y a un espace et une tabulation entre le
p
et le300
. Pas de nouvelle ligne de fin.la source
Fichiers batch, 500
Notez également les deux espaces entre "ECHO" (en majuscule exprès) et "500".
la source
C, 1700
Étrange - personne n'a encore publié de solution C (à l'exception de l'exemple de la question).
Pas de nouvelle ligne à la fin.
la source
K (
923 796 795 746513)Je ne sais pas si cela va à l'encontre des règles ou non. Il n'utilise pas stdin, il s'ouvre comme un vecteur d'octets et de sommes.
Usage:
edit 2012.05.08 - pas besoin d'hsymer le descripteur de fichier 2012.05.09 - enregistré 1 point en convertissant en octet au lieu de int
17.05.2012 - Peut enregistrer une charge de points en lisant le fichier comme bytestream plutôt que du texte:
la source
J, 198
et
Je l'ai trouvé par force brute. En J, il n'y a pas de solutions à 1 ou 2 caractères, et la seule solution à 3 caractères est
150
. À moins de bogues dans ma recherche, il n'y a pas d'autre solution à 4 caractères.Du canal IRC #jsoftware, nous avions également
<.%:10!20
à 429 et une quine d'auto-comptage+/a.i.2#(,{:)'+/a.i.2#(,{:)'''
à 1706.la source
bc 1160
invoqué avec écho et blancs, la chaîne entière, y compris 7 blancs,
echo 1160 | bc
a un octet de 1160.150 œuvres pour bc aussi:
la source
D, 9752
celui-ci le calcule en fait comme mon quine
la source
Espace, 369
Ce programme de 20 caractères imprime le nombre 369, qui est la somme des valeurs ascii de ses caractères (qui sont des caractères Tab, Space, Linefeed, ici symbolisés respectivement par T, S, L):
(369 = 7 * 9 + 8 * 32 + 5 * 10, il y a 7 tabulations, 8 espaces et 5 sauts de ligne.)
la source
Haskell, 7518
Une petite modification de ma quine :
la source
Brainf * ck, 253 (ou 252)
Légère amélioration de la solution de Peter Olson:
Pourvu que les produits non imprimables soient autorisés, il peut être encore amélioré en ajoutant un
-
et en le remplaçantH
par le code ASCII 26.la source
Scala 1090
println (1090)
la source
Python, 5440
Le score le plus élevé l'emporte, non?
Je pensais juste que je le publierais de toute façon, car c'est une solution quine à mi-chemin.
la source