Penso che la maggior parte delle persone qui sappiano cos'è un display a 7 segmenti per cifre:
_ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_|
|_| | |_ _| | _| |_| | |_| _|
Possiamo definire la differenza di 7 segmenti (7SD) tra due cifre per essere il numero di segmenti che devono essere attivati per passare da uno all'altro. Ad esempio, la 7SD tra 1e 2è 5 (i tre segmenti orizzontali e i due segmenti verticali inferiori devono essere attivati), e la 7SD tra 6 e 8 è 1 .
Inoltre, possiamo definire la 7 SD tra due numeri per essere la somma delle 7 SD tra le cifre corrispondenti. Se un numero è più lungo dell'altro, assumiamo che siano allineati a destra e aggiungiamo il numero di segmenti necessari per visualizzare le cifre aggiuntive più significative del numero più grande. Ad esempio, considera il 7SD tra 12345e 549:
x: 1 2 3 4 5
y: 5 4 9
7SD: 2+5+2+0+1 = 10
Il tuo compito è calcolare 7SD tra n e n + 1 , dato n .
Per comodità, ecco la tabella completa di 7 SD tra singole cifre. La riga _rappresenta una posizione vuota.
_ 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
Ingresso
- L'input è un singolo numero intero positivo
n. - È possibile scrivere un programma o una funzione, prendendo l'input tramite STDIN (o l'alternativa più vicina), argomento della riga di comando o argomento della funzione.
- Puoi supporre che l'input sia al massimo uno in meno del numero più grande che può essere rappresentato dal tipo intero standard della tua lingua, purché quel tipo supporti almeno i valori fino a 127 inclusi.
Produzione
- È necessario stampare un singolo numero intero, la 7SD tra
nen+1. - È possibile eseguire l'output tramite STDOUT (o l'alternativa più vicina), il valore restituito dalla funzione o l'argomento della funzione (out).
punteggio
Si applicano le regole standard del codice golf , vince il codice più breve (in byte).
Casi test
Per qualche oscura ragione, questa sequenza non è ancora in OEIS, sebbene ci sia la sequenza strettamente correlata A123587 . Ecco i primi 100 numeri (che iniziano con 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
Il primo input per il quale la 7SD è maggiore di 9 è 1999che dovrebbe produrre 11. Ecco alcuni altri esempi più grandi:
n 7SD
1999 11
12345 1
999999 14
5699999 15
8765210248 1