Eu tenho um desafio simples para você neste momento. Dada uma matriz de números inteiros positivos A (ou o equivalente no seu idioma), substitua cada entrada A i pela soma dos próximos elementos A i de A , voltando desde o início, se não houver itens suficientes.
Como de costume, você pode competir em qualquer linguagem de programação e receber entradas e fornecer saídas por qualquer método padrão e em qualquer formato razoável, observando que essas brechas são proibidas por padrão. Opcionalmente, você também pode usar o tamanho de A como entrada. Isso é código-golfe , então a submissão mais curta (em bytes) para todos os idiomas vence.
Exemplos / Casos de Teste
Dado [1,3,4,5]
, seu código deve gerar [3,10,13,14]
, porque 1
é substituído por 3
, 3
é substituído por 4+5+1=10
(observe como ele foi recuperado desde o início), 4
por 5+1+3+4=13
e 5
por 1+3+4+5+1=14
.
Dado [3,2,1,9]
, seu programa deve produzir [12,10,9,33]
, porque substituímos 3
por 2+1+9=12
, 2
com 1+9=10
, 1
com 9
e 9
com 3+2+1+9+3+2+1+9+3=33
(observe como nos recuperamos desde o início mais de uma vez).
Mais alguns casos de teste para você escolher:
[4,3,2,1] -> [10,7,5,4]
[3,2,1,9] -> [12,10,9,33]
[1,3,4,5] -> [3,10,13,14]
[4,4,3,2,2] -> [11,11,8,6,8]
[3,5,3,2,1] -> [10,14,6,4,3]
[3,2,4,3,2,1,1] -> [9,7,7,4,2,1,3]
[7,8,6,5,4,3,2,1,5] -> [29,33,20,15,11,8,6,5,30]
[28,2,4,2,3,2,3,4,5,3] -> [137,6,10,5,9,7,12,38,39,34]
[1,2,3,4,5,4,3,2,1,2,3,4,3,2,1] -> [2,7,13,14,12,8,5,3,2,7,9,7,4,2,1]