Рассмотрим поток / файл с одним целым числом в строке. Например:
123
5
99
Ваш код должен выводить сумму этих чисел, то есть 227
.
Формат ввода строго одно целое число в строке. Вы не можете, например, предположить, что вход находится в одной строке как массив целых чисел.
Вы можете получить ввод из STDIN в виде имени файла или файла с именем по вашему выбору; Вы можете выбрать какой. Другие способы получения входных данных не допускаются.
Ввод будет содержать как минимум одно целое число. Вы можете предположить, что все целые числа неотрицательны и что их общая сумма меньше, чем .232
code-golf
string
arithmetic
Деннис
источник
источник
Ответы:
05AB1E , 2 байта
Объяснение:
Попробуйте онлайн!
источник
Bash + coreutils, 16 байт
Попробуйте онлайн!
Есть два пробела после
\
. Это работает и для отрицательных чисел.Объяснение:
Вы можете спросить, почему
tr \\n +|bc
не лучше, так как он превращает новые строки прямо в «+». Хорошо, что есть 2 непредвиденные ошибки:источник
tr \\n +|bc
? Если это так, пожалуйста, смотрите обновленное объяснение. Хороший вопрос.paste -s -d+|bc
составляет 15 байтовxargs|tr \ +
в этом случае ничего не происходит, и bc получает номер и печатает его обратно.MATL , 2 байта
Это ожидает ввода в текстовом файле с именем
defin
.Гиф или этого не случилось :
Или попробуйте онлайн! ( спасибо Деннису за настройку! )
объяснение
При запуске программы MATL, если вызванный файл
defin
найден (имя относится к «вводу по умолчанию»), его содержимое автоматически загружается в виде текста и передается в стек в виде строки перед выполнением кода.Функция
U
оценивает строку, чтобы преобразовать ее в вектор-столбец чисел, иs
вычисляет сумму, которая отображается неявно.источник
Japt , 2 байта
объяснение
Попробуйте онлайн!
источник
Вставить + bc, 13 байт
Объяснение:
Еще один ответ оболочки!
источник
paste -s -d+|bc
и не понимал, что смогу объединить коммутаторы. Ухоженная!Perl 6 , 13 байт
Попытайся
объяснение
lines()
возвращает список строк из$*IN
или$*ARGFILES
«волшебной» ввода командной строки ручки.sum(…)
был добавлен в Perl 6, чтобы позволить[+] List
быть оптимизированным для Позиционеров, которые могут вычислять их сумму, не генерируя все их значения, как1..100000
(я просто подумал,
sum
что здесь слишком мило, чтобы использовать,[+]
как обычно)say(…)
вызовите.gist
метод для его ввода и напечатайте его с дополнительной новой строкой.источник
$a+=$_ for <>;print $a
работает в Perl 5, но может быть и более короткий путь.C, 53 байта
источник
Python 3 , 28 байт
Взято из этого совета . Мне сказали, что это не будет работать на Windows.
Попробуйте онлайн!
источник
Сетчатка ,
117 байт-4 спасибо Мартину Эндеру
Попробуйте онлайн!
Преобразовать в одинарный:
Подсчитайте количество
1
с:источник
Brain-Flak , 20 байтов
Попробуйте онлайн!
объяснение
Это решение, созданное Райли в чате . Его решение было:
Если вы знакомы с Brain-Flak, это довольно очевидно. Он увеличивает высоту стека и выдает одно значение при обратном отсчете, а в конце - сумму всех прогонов.
Это довольно хороший гольф, но он обнуляет оба,
{}
и, тем не([])
менее, они будут иметь значения, которые будут отличаться только на единицу, поэтому, если вместо этого мы удалим маски и сделаем одно из двух отрицательных значений, они должны почти аннулироваться.Так как они всегда отличаются на единицу, у нас есть неудачное обстоятельство, когда наш ответ всегда не соответствует высоте стека. Чтобы исправить это, мы просто перемещаем начало толчка, чтобы охватить первую высоту стека.
источник
Python 2, 40 байт
источник
R 11 байт
scan
принимает входные данные, один номер в строке. Иsum
, ну, суммы.источник
Perl 5 , 9 байт
8 байтов кода +
-p
флаг.Попробуйте онлайн!
При
-p
этом вход считывается по одной строке за раз, сохраняется в$_
каждый раз. Мы используем в$\
качестве аккумулятора, потому что благодаря-p
флагу он неявно печатается в конце. Используются несоответствующие}{
, поэтому-p
флаг печатает только$\
один раз в конце вместо печати,$_
и$\
в каждой строке он читает, как обычно.источник
)(
accolades
, по-видимому.Чистый Баш,
3736 байтСпасибо @KevinCruijssen за байт!
Попробуйте онлайн!
источник
do ((
? TIO , кажется, работает.Haskell, 32 байта
Попробуйте онлайн! ,
interact
собирает весь ввод из stdin, передает его функции, указанной в качестве аргумента, и печатает строку, полученную из этой функции. Функция:источник
lines.map(_.toInt)
потому что sum ожидает какое-то числовое неявное преобразование из String или, в данном случае, явное.PHP, 22 байта
Предполагается, что существует файл с именем «t» со списком целых чисел.
file()
открывает файл и возвращает массив, в каждой строке которого хранится отдельный элемент массива.array_sum()
суммирует все элементы в массиве.источник
Awk, 19 байт
Объяснение:
источник
{s+=$1}END{print s}
:)постоянный ток , 14 байтов
Попробуйте онлайн!
Объяснение:
источник
CJam , 5 байтов
Попробуйте онлайн!
Как это работает
источник
1b
сложить цифры?[<x> <y> <z> <w>]<b>b
просто вычисляет b³x + b²y + bz + w . Когда b = 1 , это дает x + y + z + w .Python,
3830 байтВ python файлы открываются
open('filename')
(очевидно). Они, однако, итерируемы. Каждый раз, когда вы перебираете файл, вы получаете следующую строку. Таким образом, карта перебирает каждый список, вызываяint
его, а затем суммирует полученный список.Вызов с именем файла в качестве ввода. (то есть
f('numbers.txt')
)8 байтов сохранены с использованием
map(int, open(n))
вместо понимания списка. Оригинальный код:источник
Mathematica, 19 байт
Предполагается, что среда Mathematica для ноутбуков.
Ожидает, что вход будет в файле
a
.источник
Total @ Flatten @ Import @ "a"
и просто"a" // Import // Flatten // Total
. ;)Tr[#&@@@Import@#]&
Также не будет разрешено?Желе ,
98 байтSTDIN на самом деле не вещь желе ...
Попробуйте онлайн!
Как это работает
источник
F
может бытьṖ
также, для ясности.Брахилог , 4 байта
Попробуйте онлайн!
объяснение
источник
Чистая Баш, 30
Попробуйте онлайн.
read
s входной файл за один раз входит в переменнуюb
.-d_
говорит,read
что разделитель строки_
вместоnewline${b//'
newline'/+}
заменяет новые строки вb
с+
echo $[ ... ]
арифметически оценивает полученное выражение и выводит его.источник
$[]
разделе произойдет ошибка из-за завершающего «+».read
отбрасывает последние завершающие переводы строки, даже если разделитель строк переопределяется_
. Это, возможно, оговоркаread
, но она хорошо работает в этой ситуации.Vim, 16 байт / нажатий клавиш
Поскольку V имеет обратную совместимость, вы можете попробовать это онлайн!
источник
Pyth , 3 байта
Попробуйте онлайн!
источник
JQ , 5 байт
add
плюс флаг командной строки-s
.Например:
источник
-sadd
как не будет работать, посчитайте пространство.add
(3 байта), и вы должны добавить 2 байта для-s
флага. Пробел не считается ни кодом, ни флагом: это разделитель командной строки, используемый языком.-s
флага есть сокращение --slurp , ( считайте весь входной поток в большой массив и запустите фильтр только один раз), который меняет какjq
интерпретацию входных данных, так и выполнение кода. Это не так , как-e
вsed
который просто говорит оsed
том , что последующая строка кода. Это-s
больше похоже на часть самогоjq
языка, и поэтому 6-байтовое пространство тоже будет.На самом деле , 2 байта
Попробуйте онлайн!
Объяснение:
источник
DC 22
Это кажется более длинным, чем должно быть, но сложно решить, когда будет достигнут конец файла. Единственный способ сделать это - проверить длину стека после
?
команды.Попробуйте онлайн .
Обратите внимание, что макрос
m
вызывается рекурсивно. Современные средстваdc
реализуют хвостовую рекурсию для такого рода вещей, поэтому не стоит беспокоиться о переполнении стека.источник
Пайк , 4 байта
Попробуйте онлайн!
источник