Eu acho que a maioria das pessoas por aqui sabe o que é um display de 7 segmentos para dígitos:
_ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_|
|_| | |_ _| | _| |_| | |_| _|
Podemos definir a diferença de 7 segmentos (7SD) entre dois dígitos para ser o número de segmentos que precisam ser alternados para alternar de um para o outro. Por exemplo, o 7SD entre 1
e 2
é 5 (os três segmentos horizontais e os dois segmentos verticais inferiores precisam ser alternados) e o 7SD entre 6 e 8 é 1 .
Além disso, podemos definir o 7SD entre dois números como a soma dos 7SDs entre os dígitos correspondentes. Se um número for maior que o outro, assumimos que eles estão alinhados à direita e adicionamos o número de segmentos necessários para exibir os dígitos mais significativos do número maior. Como exemplo, considere o 7SD entre 12345
e 549
:
x: 1 2 3 4 5
y: 5 4 9
7SD: 2+5+2+0+1 = 10
Sua tarefa é calcular 7SD entre n e n + 1 , dado n .
Por conveniência, aqui está a tabela completa de 7SDs entre dígitos individuais. A linha _
representa uma posição vazia.
_ 0 1 2 3 4 5 6 7 8 9
_ 0 6 2 5 5 4 5 6 3 7 6
0 6 0 4 3 3 4 3 2 3 1 2
1 2 4 0 5 3 2 5 6 1 5 4
2 5 3 5 0 2 5 4 3 4 2 3
3 5 3 3 2 0 3 2 3 2 2 1
4 4 4 2 5 3 0 3 4 3 3 2
5 5 3 5 4 2 3 0 1 4 2 1
6 6 2 6 3 3 4 1 0 5 1 2
7 3 3 1 4 2 3 4 5 0 4 3
8 7 1 5 2 2 3 2 1 4 0 1
9 6 2 4 3 1 2 1 2 3 1 0
Entrada
- A entrada é um único número inteiro positivo
n
. - Você pode escrever um programa ou função, recebendo informações via STDIN (ou alternativa mais próxima), argumento de linha de comando ou argumento de função.
- Você pode supor que a entrada seja no máximo um menor que o maior número que pode ser representado pelo tipo inteiro padrão do seu idioma, desde que esse tipo suporte pelo menos valores até 127 inclusive.
Saída
- Você deve imprimir um único número inteiro, o 7SD entre
n
en+1
. - Você pode enviar via STDOUT (ou alternativa mais próxima), valor de retorno da função ou argumento da função (out).
Pontuação
Aplicam-se as regras de código-golfe padrão, o código mais curto (em bytes) vence.
Casos de teste
Por alguma razão obscura, essa sequência ainda não está no OEIS, embora exista a sequência A123587 intimamente relacionada . Aqui estão os 100 primeiros números (começando com n = 1, 2, 3, ...
):
5, 2, 3, 3, 1, 5, 4, 1, 4, 4, 5, 2, 3, 3, 1, 5, 4, 1, 7, 4, 5, 2, 3, 3, 1,
5, 4, 1, 4, 4, 5, 2, 3, 3, 1, 5, 4, 1, 5, 4, 5, 2, 3, 3, 1, 5, 4, 1, 5, 4,
5, 2, 3, 3, 1, 5, 4, 1, 3, 4, 5, 2, 3, 3, 1, 5, 4, 1, 7, 4, 5, 2, 3, 3, 1,
5, 4, 1, 6, 4, 5, 2, 3, 3, 1, 5, 4, 1, 3, 4, 5, 2, 3, 3, 1, 5, 4, 1, 6, 4
A primeira entrada para a qual o 7SD é maior que 9 é a 1999
que deve render 11. Aqui estão alguns outros exemplos maiores:
n 7SD
1999 11
12345 1
999999 14
5699999 15
8765210248 1