Dado um número como entrada, imprima sua soma coletiva
O que é uma soma coletiva?
Considere o número 13214
, a entrada
Ao percorrer cada um dos dígitos a partir da esquerda, poderemos obter sua soma coletiva.
1
significa olhar para o primeiro dígito e adicioná-lo à soma, soma = 1
3
significa olhar para os "primeiros 3 dígitos" e adicioná-lo à soma, soma = 1 + 132
2
significa olhar para os "primeiros 2 dígitos" e adicioná-lo à soma, soma = 1 + 132 + 13
1
significa olhar para o primeiro dígito e adicioná-lo à soma, soma = 1 + 132 + 13 + 1
4
significa olhar para os "primeiros 4 dígitos" e adicioná-lo à soma, soma = 1 + 132 + 13 + 1 + 1321
Soma total = 1468
e esta é sua saída
Casos especiais:
Se encontrarmos a 0
, então claramente manteremos a soma da mesma
The number 1301 would have a sum = 1 + 130 + 1 = 132
Se encontrarmos um número maior que o comprimento da entrada, adicionamos tudo
The number 251 would have a sum = 25 + 251 + 2 = 278
Casos de teste:
collectiveSum(0) = 0
collectiveSum(2) = 2
collectiveSum(2315) = 23 + 231 + 2 + 2315 = 2571
Menor quantidade de bytes vence. Feliz golfe!
fonte
2315
caso de teste está faltando a+ 2
partir do1
e deve resultar em2571
.2571
.Respostas:
05AB1E ,
43 bytes-1 graças a Kevin Cruijssen (uso de
€
evitar a}
)Experimente online!
Quão?
fonte
ε£}
pode ser€£
para salvar um byte.€
já estava lá por um bom tempo na versão herdada do 05AB1E antes disso. Já estava lá quando publiquei minha primeira resposta 05AB1E em abril de 2018. Portanto, pode ser possível que ela tenha sido adicionada logo após a publicação desta resposta, mas não tenho certeza.Python 2 , 43 bytes
Experimente online!
fonte
ValueError
entrada de1301
ou qualquer entrada que tenha zero como um de seus dígitos.int
função pode aceitar um número inteiro, substituindo o'0'
literal da string por just0
shave off one byte.Python 2, 72 bytes
Primeira submissão! Obrigado a @DestructibleLemon pela ajuda!
fonte
Haskell,
4337 bytesExperimente online!
O número de entrada é tomado como uma sequência.
fonte
Ruby , 36 bytes
Experimente online!
fonte
#sum
não está definido nos fixnums, então suponho que você queiran
ser uma string. No entanto,String#sum
calcula anot a particularly good checksum
e ignora o bloco que você fornece. Se você quis dizern.chars.sum{
,Enumerable#sum
não está no ruby stdlib, é uma extensão fornecida por rails. Teste suas soluções antes de publicá-las.Enumerable#sum
está no Ruby 2.4 , e o TIO usa 2.4JavaScript,
4240 bytesObrigado @Shaggy por jogar fora 2 bytes
Recebe entrada como uma string e retorna um número inteiro. Como atualmente escrito, esse código deixa zeros à esquerda em quaisquer números inteiros.
fonte
x=>[...x].map(y=>a+=+x.slice(0,y),a=0)|a
R, 57 bytes
salvou mais um graças a @Vlo
foi: salvou 4 bytes graças à sugestão de @Robert Hacken.
Uma abordagem de string simples.
fonte
unlist
porel
.sum(strtoi(substring(i<-scan(,""),1,el(strsplit(i,"")))))
C (gcc) , 106 bytes
Experimente online!
fonte
Carvão , 10 bytes
Experimente online! Link é a versão detalhada do código. Explicação:
fonte
Oitava , 56 bytes
Função anônima que pega uma string como argumento de entrada e retorna um número como saída.
Experimente online!
A versão mais curta
trabalha no Matlab, porque
char(0)
é tratado como um espaço.fonte
Geléia ,
75 bytes-2 graças a Dennis (a cabeça vectoriza>. <)
4 se pudermos pegar listas de dígitos *
Experimente online!
*
ḣ`ḌS
Quão?
fonte
Perl 6 , 27 bytes
Teste-o
Expandido:
fonte
C (gcc) ,
7775 bytesPrecisa ser compilado com o
-lm
switch ou o GCC não reconhece as funções matemáticas.Experimente online!
fonte
dc , 55 bytes
Sem cordas nem matrizes! De fato, os dígitos necessários são adquiridos apenas através da manipulação matemática.
Experimente online!
fonte
Casca , 6 bytes
Experimente online!
Explicação
fonte
J , 18 bytes
Explicação
Pega uma string como entrada
Experimente online!
fonte
Japt, 5 bytes
Recebe a entrada como uma sequência.
Tente
Explicação
fonte
Stax , 6 bytes
Execute e depure on-line
A representação ascii correspondente do mesmo programa é essa.
fonte
Na verdade , 10 bytes
Experimente online!
Explicação
fonte
JavaScript, 43 bytes
Já passa das 3 da manhã, por que ainda estou jogando golfe ?!
Recebe a entrada como uma sequência.
Experimente online
fonte
Perl 5, 26 bytes
Inclui
+1
parap
fonte
K4 , 22 bytes
Solução:
Exemplos:
Explicação:
Entre na base 10, considere o mínimo de cada número e o comprimento da lista. Converta de volta e resuma.
fonte
Java 8, 92 bytes
Explicação:
Experimente online.
fonte
REXX 118 bytes
Experimente aqui
Fornecer valor de entrada na guia STDIN.
fonte
Python 3 , 66 bytes
Experimente online!
fonte
Gelatina , 6 bytes
Experimente online!
Obtenha os
D
igits da entrada e, em seguida, obtenha os primeiros [cada dígito] dos elementos da entrada (ḣ
ead) e depoisV
cada soma para torná-lo um número novamente eS
um.fonte