Ваша задача - написать программу для вывода суммы ASCII-кодов символов самой программы. Вам не разрешено открывать какие-либо файлы (любые входные данные, такие как аргументы командной строки, стандартный ввод или файлы запрещены).
Программа, которая печатает наименьшее число (то есть имеет наименьшую сумму кодов ASCII), побеждает.
Вот пример (не самый короткий) такой программы, написанной на C:
#include <stdio.h>
int main(){
printf("4950");/*i*/
return 0;
}
(нет новой строки после }
)
code-challenge
Александр
источник
источник
Ответы:
туалет, печать 0
Кто-то сказал "кошачьи языки", так что ...
Пустой файл:
Выполнить с
wc -c file.wc
. При 0 байтах я думаю, что это победитель в категории «не совсем язык программирования».Также
кот, отпечатки 80 (база 13)
Не завершающий перевод строки, число 80 13 эквивалентно 104 в десятичном виде. Вы можете пойти короче с 60 17 (102 декабря), но я подумал, что «база 13» будет стоить больше очков гиков.
РЕДАКТИРОВАТЬ: Новый
wc
пример, этот можно запустить как программу.(Как закодировано в Latin-1 - ÿ является байтом со значением 255)
Сумма байтов составляет 2223, вывод:
источник
wc -c
в любом случае это запрещено в вопросе.0 0 0
(если файл, передаваемый как файл, запрещает это, тогда все языки сценариев также запрещено)wc
, -1 для базовой измены, +1 для шуток в базе 13.wc
, это приложение, а не язык.PHP, m4 и другие кошачьи языки: 150
Нашел это решение, используя простую программу на Haskell:
источник
5!
в J.5!
86, а не 125.Brainf * ck, 255
Это не будет печатать число 255, а скорее 255-й символ ASCII.
Это можно считать обманом, потому что компилятор BF пропускает ¤.
источник
¤
это обман, так как это обычный комментарий.Javascript, печать
94326902Пока что это первое решение для Quine, если я не правильно понял Haskell .
источник
(function a(){b="("+a+")()";for(i=c=0;i<b.length;i++)c+=b.charCodeAt(i-0);alert(c)})()
PowerShell
отпечатки 310.
источник
Perl 500
Есть две вкладки между
say
и500
. :)(Запускать как однострочник
perl -E
, насколько я могу судить, это в правилах)источник
Рубин, принты 380
После закрывающей скобки нет завершающего символа новой строки.
источник
PowerShell
отпечатки 230, очевидно.
источник
PowerShell
отпечатки 320.
источник
J 150
С оговоркой, что это будет правильно только 1 / 720th времени.
источник
Питон, печать 781
Два пробела.
источник
Элемент, 220
Это язык моего собственного творения, и он задокументирован в моем ответе на другой вопрос здесь .
Вот пошаговое руководство о том, как это работает:
220
помещает это число в стек. Затем ``outputs the top element of the stack. The
! `Затем выполняет логическое не в стеке управления (отдельный стек), устанавливая его в 1.источник
PHP, печать 4440
источник
PowerShell, печать 3902
Просматривает текущую строку и суммирует значения кодовых точек.
источник
ИНТЕРКАЛ, 1572
Я не могу поверить, что никто еще не сделал INTERCAL!
(Включает завершающий перевод строки.) Эта программа выводит MDLXXII.
источник
Perl, печать 690
Или, если мы можем опубликовать однострочники (
perl -E
)Отпечатки 570.
(Нет завершающих строк)
источник
JavaScript,
1750 900 860790alert(790)
(Возврат каретки (CR,
\r
или\x0D
) после или перед программой)Эти программы найдены путем перебора.
Большие значения:
источник
Java-128
Я знаю, что читать stdin нельзя, но я хотел привести пример того, как я рассчитал свой счет.
Мой код суммирует подсчет ASCII самого себя, переданного на стандартный ввод, и выводит -128
Нет новой строки
источник
Рубин, отпечатки 300
Существует пространство и вкладки между
p
и300
. Нет завершающего перевода строки.источник
Пакетные файлы, 500
Также обратите внимание на два пробела между «ECHO» (заглавными буквами) и «500».
источник
С, 1700
Странно - еще никто не опубликовал решение C (исключая пример из вопроса).
Нет новой строки в конце.
источник
К (
923 796 795 746513)Я не уверен, что это противоречит правилам или нет. Он не использует stdin, он открывается как вектор байтов и сумм.
Использование:
редактировать 2012.05.08 - не нужно hsym дескриптор файла 2012.05.09 - сохранено 1 балл путем преобразования в байт вместо int
2012.05.17 - Можно сохранить загрузку точек, считывая файл в виде потока, а не текста:
источник
J, 198
и
Нашел это грубой силой. В J нет 1 или 2-символьных решений, и единственное 3-символьное решение есть
150
. За исключением каких-либо ошибок в моем поиске, также нет других 4-символьных решений.На IRC-канале #jsoftware у нас тоже было
<.%:10!20
429, а+/a.i.2#(,{:)'+/a.i.2#(,{:)'''
в 1706 - счетный счетчик .источник
до н.э. 1160
вызывается с эхом и пробелами, вся строка, включая 7 пробелов,
echo 1160 | bc
имеет байт 1160.150 работает для до н.э .:
источник
D 9752
этот на самом деле вычисляет это похоже на мою квину
источник
Пробел, 369
Эта 20-символьная программа печатает число 369, которое является суммой значений ascii ее символов (которые являются символами табуляции, пробела, перевода строки, здесь обозначены T, S, L соответственно):
(369 = 7 * 9 + 8 * 32 + 5 * 10, есть 7 вкладок, 8 пробелов и 5 перевод строки.)
источник
Хаскелл, 7518
Небольшая модификация моей квинны :
источник
Brainf * ck, 253 (или 252)
Незначительное улучшение решения Питера Олсона:
При условии, что недопечатаемые файлы разрешены, их можно еще улучшить, добавив
-
и заменивH
код ASCII 26.источник
Scala 1090
println (1090)
источник
Питон, 5440
Самый высокий балл побеждает, верно?
Я просто подумал, что выложу это в любом случае, потому что это наполовину готовое решение.
источник