Dada uma sequência aritmética finita de números inteiros positivos, com alguns termos removidos do meio, reconstrua a sequência inteira.
A tarefa
Considere uma sequência aritmética: uma lista de números inteiros positivos na qual a diferença entre dois elementos sucessivos é a mesma.
2 5 8 11 14 17
Agora, suponha que um ou mais números inteiros sejam removidos da sequência, sujeitos às seguintes restrições:
- Os números inteiros removidos serão termos consecutivos da sequência.
- O primeiro e o último número inteiro na sequência não serão removidos.
- Pelo menos três números inteiros permanecerão na sequência.
Para a sequência acima, as possíveis remoções incluem:
2 5 8 14 17 (removed 11)
2 5 17 (removed 8 11 14)
2 14 17 (removed 5 8 11)
Sua tarefa: Dada uma dessas seqüências parciais, reconstrua a sequência completa original.
Detalhes
Você pode assumir que a entrada é válida (tem uma solução) e está faltando pelo menos um termo. Todos os números na sequência serão números inteiros positivos (> 0). A sequência pode ter uma diferença positiva ou negativa entre os termos (ou seja, pode estar aumentando ou diminuindo). Não será uma sequência constante (por exemplo 5 5 5
).
Sua solução pode ser um programa completo ou uma função . Qualquer um dos métodos padrão de entrada e saída é aceitável.
Sua entrada e saída podem ser uma string (com qualquer delimitador razoável), uma lista de strings ou uma lista de números. Você pode representar os números em qualquer base que seja conveniente para o seu idioma.
Mencione quaisquer métodos / formatos incomuns de E / S em seu envio, para que outros possam testar seu código mais facilmente.
Casos de teste
In: 2 5 8 14 17
Out: 2 5 8 11 14 17
In: 2 5 17
Out: 2 5 8 11 14 17
In: 2 14 17
Out: 2 5 8 11 14 17
In: 21 9 6 3
Out: 21 18 15 12 9 6 3
In: 10 9 5
Out: 10 9 8 7 6 5
In: 1 10 91 100
Out: 1 10 19 28 37 46 55 64 73 82 91 100
Isso é código-golfe ; a resposta mais curta em cada idioma vence.
2 5 ... 17