Considere a matriz de números inteiros positivos:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, ...
Em seguida, concatene-os:
1234567891011121314151617181920212223242526...
E, em seguida, dividi-las em pedaços de comprimento variável, cada comprimento igual ao N th inteiro positivo:
[1][23][456][7891][01112][131415][1617181][92021222][324252627][2829303132] ...
---------------------------------------------------------------------------
1 2 3 4 5 6 7 8 9 10 ...
Tarefa
Dado um número inteiro N (positivo para 1-indexação ou não-negativo para 0-indexação), a sua tarefa é a saída da soma dos deltas dos dígitos no N th pedaço (as diferenças entre os algarismos consecutivos).
Aplicam -se lacunas proibidas por padrão .
Aplicam-se os métodos padrão de entrada e saída .
Você pode escolher 0 ou 1-indexação para N .
A sequência deve começar com 1 .
Este é o código-golfe , o código mais curto em bytes vence.
Exemplos e casos de teste
Casos de teste indexados em 1. Se você deseja indexados com 0, apenas diminua N.
N, Chunk, Deltas, Sum
1 -> 1 -> [] -> 0
2 -> 23 -> [1] -> 1
3 -> 456 -> [1, 1] -> 2
4 -> 7891 -> [1, 1, -8] -> -6
5 -> 01112 -> [1, 0, 0,1] -> 2
6 -> 131415 -> [2, -2, 3, -3, 4] -> 4
7 -> 1617181 -> [5, -5, 6, -6, 7, -7] -> 0
8 -> 92021222 -> [-7, -2, 2, -1, 1, 0, 0] -> -7
9 -> 324252627 -> [-1, 2, -2, 3, -3, 4, -4, 5] -> 4
10 -> 2829303132 -> [6, -6, 7, -6, -3, 3, -2, 2, -1] -> 0
Quebra-cabeça 2 no CodeGolf-Hackathon (também sou o autor original, por isso estou autorizado a republicar). Relacionado, Inspiração . Relacionado .
fonte
Respostas:
JavaScript (ES6),
54535150 bytesGuardado 1 byte graças a @tsh
Indexado a 0.
Casos de teste
Mostrar snippet de código
fonte
k=>-(n=1,g=s=>s[x=k*-~k/2]-s[x+k]-n||g(s+n++))""-n
APL (Dyalog) , 32 bytes
Experimente online!
Quão?
+/⍳⍵
- soma de1
an
⍳
- faça escala disso' '~⍨⍕
- em string, sem espaços(+/⍳⍵-1)↓
- drop primeiro (soma de1
an-1
) caracteres⍵↑
- mantenha os próximosn
caracteres⍎¨
- transformar cada caractere em inteiro2-⍨/
- lista de diferenças (subtração reversa para cada 2 itens)+/
- resumir.fonte
Casca , 9 bytes
Experimente online!
Minha solução para o Hackathon.
Explicação:
fonte
Haskell ,
6160 bytesExperimente online!
Explicação:
A soma dos deltas de uma lista é igual à diferença entre o último e o primeiro elemento.
O último elemento (zero-indexada) é
t
,triangle(n)-1 = sum[2..n]
. O primeiro elemento ét-n+1
, pois a lista possuin
elementos.fonte
Python 2 , 80 bytes
Experimente online!
2**n
é um exagero, é claro, mas é um byte mais curto do que algo parecidon*n+1
.fonte
Mathematica, 71 bytes
Experimente online!
fonte
JavaScript (ES6),
605753 bytes1 indexado. Versão não recursiva anterior de 60 bytes:
fonte
05AB1E , 8 bytes
Indexado a 0.
Experimente online!
fonte
Python 2 , 87 bytes
Experimente online!
fonte
Python 2 , 104 bytes
Experimente online!
fonte
Perl 6 ,
5855 bytesTeste-o
Teste-o
Expandido:
fonte
PHP ,
163147 bytesExperimente online!
Minha primeira tentativa no código de golfe ... sinto que isso pode ser mais curto
Editar: salvou 16 bytes removendo várias instanciações
fonte
Perl 5 , 79 + 1 (
-p
) = 80 bytesExperimente online!
fonte
Pitão ,
2927 bytesEconomizou 2 bytes graças a @ Mr.Xcoder.
Experimente online!
fonte
Gelatina , 14 bytes
Experimente online!
Explicação
Inicialmente, comecei tomando o intervalo (n (n + 1) / 2), mas como você pode ter dígitos extras no final da lista antes de cortá-lo, mudei para intervalo (n ^ 2). Você tem dígitos extras depois de 1 a 9 de qualquer maneira.
fonte
+²HRDFṫЀ³ḶḣЀRS€‘¤ṪðḣIS
tentativa original (bem-sucedida mas longa)