Проблема:
Учитывая набор целых чисел, найдите сумму всех положительных чисел в нем.
Входные данные:
- t - количество тестов [ t <1000]
- В каждой из следующих t строк целое число N [-1000 ≤ N ≤ 1000]
Выход
Программа должна вывести сумму всех натуральных чисел.
Проверьте свой код в онлайн-судье
Гол
Оценка равна размеру исходного кода вашей программы, за исключением символов с кодом ASCII ≤ 32.
Вот список лучших результатов: Лучшие результаты Python (лучший результат - 29)
code-challenge
gmunkhbaatarmn
источник
источник
T
(число ... errr ... цифр (?)) Не вариант ... так как тестовые случаи содержат дополнительные данные послеT
чисел ... ваш код не будет работать в SPOJ. Каждый (3 ответа ниже), казалось, умело пропустил первое целое число.Ответы:
Пробел, 0
Я не мог устоять.
S
= пробел,T
= табуляция,N
= перевод строки, все имеют коды ASCII <= 32.Base64 кодируется для легкого копирования и вставки.
источник
S
двоичного кодирования числа. Это все в инструкциях типа push-number-to-stack в формеSSSS...N
, где четвертоеS
кодирует лишний ведущий 0. (Конечно, это не влияет на счет.)Элемент, 17 символов плюс 1 пробел
Это мой первый построенный язык. Это разработано, чтобы быть очень компактным и удобочитаемым. Все инструкции состоят из одного символа и выполняют одну функцию.
Элемент имеет два стека и хэш в качестве структуры памяти. Два стека называются основным стеком и стеком управления. Основной стек - это место, где происходит арифметика, ввод-вывод и манипулирование хешем. В стеке управления выполняются логические операции, и этот стек управляет циклами while и for.
Основная идея Element заключается в том, что есть хеш, который хранит числа / строки, в то время как стек используется для вычисления этих чисел. Результаты этих вычислений затем могут быть назначены определенное место в хеш для будущего использования. Разное содержимое хеша называется элементами, поэтому оно похоже на массив, но может иметь нечисловые имена.
РЕДАКТИРОВАТЬ: Вы можете найти переводчика для элемента (написанный на Perl) здесь .
Вот список операторов: В некоторых из этих примеров m и n представляют числа уже в стеке.
Вот пошаговое руководство по работе программы:
источник
Perl, 31
источник
say
сделать это немного короче? Это будет лучше всего связано с 29 персонажами.say
не является встроенным и (по крайней мере) требует переключателя командной строки, который будет учитываться при подсчете символов.$\
вместо$i
:<>;$\+=$_*($_>0)while<>;print
Руби 1.9.2, 37
Вызовите как ruby scriptname file_with_ints.
источник
Руби, 52
источник
s
.Хаскелл, 58
Правильно оперирует только
t
целыми числами. Я не спровоцировал это против Споя, потому что я просто не хочу там регистрироваться.источник
t
целые числа"?код в C 89 символов
Я много пытался уменьшить свой код менее 63 байт, но я могу уменьшить его только до 89 байт. Пожалуйста, помогите мне уменьшить его до 63 байт или даже меньше.
источник
return 0;
нет необходимости,for
цикл может быть сокращен доfor(scanf(x,&t);t--;scanf(x,&a),a>0?b+=a:a);
==, что составляет 78 символов ...error: initializer element is not computable at load time x="%d"
Perl, 33
Хотя пространство необходимо, так что кажется странным не считать его. Ну да ладно, правила есть правила.
Хм. Я мог бы, вероятно, сойти с рук с помощью имени переменной, которая не учитывается в общей сумме. Дело в том, что я не уверен, как бы я вставил код тогда.
источник
Clojure, 71
источник
*in*
не являетсяjava.io.BufferedReader
, как требуетсяline-seq
.Памяти Денниса М. Ричи
Unix
57¹72:при условии, что я - файл, содержащий целые числа.
¹) ошибся, включил количество строк и добавил на 1 строку меньше.
echo $ (($ (cat i | head -n $ (head -n1 i) | grep -v "-" | tr '\ n' '+') 0))источник
Хаскелл, 51
(дополнительные пробелы для ясности, так как они не учитываются)
Haskell ... интересен, так как вы склонны получать программы со значительным количеством необходимых пробелов.
источник
filter (>0)
.C, 88
После еще одного большого усилия код становится на один символ меньше, помогите мне уменьшить его еще больше.
источник
return 0;
) и ({}
дляfor
)b,x="%d";main(a,t){for(scanf(x,&t);t--&&scanf(x,&a);)b+=(a>0)*a;printf(x,b);}
<- 77 байтBefunge-98 (24)
(Убедитесь, что вы используете интерпретатор, который может читать отрицательные числа (кажется, довольно распространенная ошибка, но RcFunge работает))
Perl (25)
(Perl позволяет управлять символами в именах переменных, я назвал свою переменную ^ B (ASCII 2), чтобы она не учитывалась для достижения цели.)
(Нормальный вариант (27 символов)):
источник
APL (10)
Объяснение:
⍳⎕
: прочитать строку, выдает список [1..N] для ввода пользователем N¨
: для каждого элемента в этом списке ... (т.е. сделать N раз)0⌈⎕
: прочитать строку, вернуть максимум 0 и введенное N+/
дает сумму этого списка.источник
Математика:
1816источник
PowerShell, 44
источник
Вопрос, 12
пример использования
источник
befunge,
3524с небольшим вдохновением, увидев ответ Маринус, я также управлял 24 персонажами. но у меня совершенно другой подход.
источник
PYTHON 2.x, 50 символов
источник
C 70
72символовРезультаты на сайте SPOJ определенно кажутся нереальными - я понятия не имею, как снизить это до 63.
Тем не менее, 68 символов достижимы в некоторых компиляторах, злоупотребляя неопределенным поведением. Следующее работает на x86 Linux с 32-битным gcc, в котором все аргументы передаются в стек.
источник
Excel, 27
считать т в A1, остальные данные a2 и вниз
источник
Clojure, 108
Я действительно хотел бы избежать этой
java.io.BufferedReader.
части, так как она стоит 24 символа. Но AFAIK нет возможности читать строки из STDIN без него.источник
Perl, 20
Я знаю, что он старый и тривиальный, но ответ на Perl можно улучшить:
источник
}{
значит / делает?C ++:
115 символов в длину. Нужно оптимизировать его до 90. Есть предложения?
источник
return 0
вmain
. Делая переменные глобальными, вы можете отказаться от=0
инициализации. Наконец,for(;;)
такое же количество символов, как и уwhile()
вас, но у вас есть два дополнительных места для выражения.std::
доcin
иcout
избавиться отusing namespace std;
может спасти еще 5 символов.PHP, 71
источник
Python: (92 символа)
источник
a=raw_input
иr=range
и использованиеa()
иr()
позже может сохранить довольно много символов.Скала
5554:источник
С
источник
sum
может быть уменьшено доs
, выходная строка может быть просто"%d"
и т. Д.Руби, 42
(основываясь на ответе david4dev)
Лучший результат для Руби на спой: http://www.spoj.com/ranks/SIZECON/lang=RUBY
источник
45 символов в питоне
источник