Учитывая число в качестве ввода, распечатайте его общую сумму
Что такое коллективная сумма?
Рассмотрим число 13214
, вход
Перебирая каждую из цифр, начиная слева, мы сможем получить ее общую сумму.
1
значит посмотрите на первую цифру и добавьте ее к сумме, sum = 1
3
значит посмотрите на «первые 3 цифры» и добавьте их к сумме, сумма = 1 + 132
2
значит посмотрите на «первые 2 цифры» и добавьте их к сумме, сумма = 1 + 132 + 13
1
значит посмотрите на первую цифру и добавьте ее к сумме, сумма = 1 + 132 + 13 + 1
4
значит посмотрите на «первые 4 цифры» и добавьте их к сумме, сумма = 1 + 132 + 13 + 1 + 1321
Общая сумма = 1468
и это ваш вывод
Особые случаи:
Если мы сталкиваемся с 0
, то ясно, что мы оставляем сумму одинаковой
The number 1301 would have a sum = 1 + 130 + 1 = 132
Если мы встречаем число, которое больше длины ввода, мы добавляем все это
The number 251 would have a sum = 25 + 251 + 2 = 278
Тестовые случаи:
collectiveSum(0) = 0
collectiveSum(2) = 2
collectiveSum(2315) = 23 + 231 + 2 + 2315 = 2571
Наименьшее количество байтов побеждает. Удачного игры в гольф!
источник
2315
Тест пропускает+ 2
от1
и должно привести2571
.2571
.Ответы:
05AB1E ,
43 байта-1 благодаря Кевину Круйссену (использование
€
избегания}
)Попробуйте онлайн!
Как?
источник
ε£}
можно€£
сохранить байт.€
уже некоторое время был там в прежней версии 05AB1E. Он уже был там, когда я опубликовал свой самый первый ответ 05AB1E в апреле 2018 года. Возможно, он был добавлен вскоре после того, как вы опубликовали этот ответ, но я не уверен.Python 2 , 43 байта
Попробуйте онлайн!
источник
ValueError
для ввода1301
, или любой ввод, который имеет ноль в качестве одной из своих цифр.int
Функция может принимать целое число, заменяя'0'
строковый литерал только с0
должен сбрить один байт.Python 2, 72 байта
Первая подача! Спасибо @DestructibleLemon за помощь!
источник
Haskell,
4337 байтПопробуйте онлайн!
Введенный номер берется как строка.
источник
Рубин , 36 байт
Попробуйте онлайн!
источник
#sum
не определяется в fixnums, поэтому я предполагаю, что вы хотитеn
быть строкой. Тем не менее,String#sum
вычисляетnot a particularly good checksum
и игнорирует блок, который вы ему даете. Если вы имели в видуn.chars.sum{
,Enumerable#sum
не в ruby stdlib, это расширение, предоставляемое rails. Пожалуйста, проверьте ваши решения, прежде чем публиковать их.Enumerable#sum
в Ruby 2.4 , а TIO использует 2.4JavaScript,
4240 байтСпасибо @Shaggy за игру в 2 байта
Получает входные данные в виде строки и возвращает целое число. Как написано в настоящее время, этот код оставляет начальные нули на любых целых числах.
источник
x=>[...x].map(y=>a+=+x.slice(0,y),a=0)|a
R, 57 байт
спас еще одно благодаря @Vlo
было: Сохранено 4 байта благодаря предложению @Robert Hacken.
Простой строковый подход.
источник
unlist
наel
.sum(strtoi(substring(i<-scan(,""),1,el(strsplit(i,"")))))
C (gcc) , 106 байт
Попробуйте онлайн!
источник
Древесный уголь , 10 байт
Попробуйте онлайн! Ссылка на подробную версию кода. Объяснение:
источник
Октава , 56 байт
Анонимная функция, которая принимает строку в качестве входного аргумента и возвращает число в качестве выходного.
Попробуйте онлайн!
Более короткая версия
работает в Matlab, потому что
char(0)
рассматривается как пространство.источник
Желе ,
75 байт-2 благодаря Денису (голова векторизована>. <)
4, если мы можем взять списки цифр *
Попробуйте онлайн!
*
ḣ`ḌS
Как?
источник
Perl 6 , 27 байт
Проверь это
Expanded:
источник
C (gcc) ,
7775 байтовДолжен быть скомпилирован с
-lm
коммутатором, или GCC не распознает математические функции.Попробуйте онлайн!
источник
постоянный ток , 55 байт
Нет строк или массивов! Действительно, требуемые цифры приобретаются исключительно посредством математических манипуляций.
Попробуйте онлайн!
источник
Шелуха , 6 байт
Попробуйте онлайн!
объяснение
источник
J , 18 байт
объяснение
Принимает строку в качестве ввода
Попробуйте онлайн!
источник
Japt, 5 байт
Принимает ввод в виде строки.
Попытайся
объяснение
источник
Stax , 6 байт
Запустите и отладьте его онлайн
Соответствующее представление ascii той же программы таково.
источник
На самом деле 10 байтов
Попробуйте онлайн!
объяснение
источник
JavaScript, 43 байта
Это хорошо после 3 часов утра, почему я все еще играю в гольф ?!
Принимает ввод в виде строки.
Попробуйте онлайн
источник
Perl 5, 26 байт
Включает
+1
в себя дляp
источник
К4 , 22 байта
Решение:
Примеры:
Объяснение:
Разбейте на основание-10, возьмите минимум каждого числа и длину списка из этого. Конвертировать обратно и подвести итог.
источник
Java 8, 92 байта
Объяснение:
Попробуйте онлайн.
источник
REXX 118 байт
Попробуйте это здесь.
Укажите значение Input на вкладке STDIN.
источник
Python 3 , 66 байт
Попробуйте онлайн!
источник
Желе , 6 байт
Попробуйте онлайн!
Получите
D
цифры ввода, затем получите первые [каждую цифру] элементы ввода (ḣ
ead), затемV
все суммы, чтобы снова сделать его числом, иS
ит.источник