Je pense que la plupart des gens d'ici savent ce qu'est un affichage à 7 segments pour les chiffres:
_ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_|
|_| | |_ _| | _| |_| | |_| _|
Nous pouvons définir la différence à 7 segments (7SD) entre deux chiffres comme étant le nombre de segments qui doivent être basculés pour passer de l'un à l'autre. Par exemple, le 7SD entre 1
et 2
est 5 (les trois segments horizontaux et les deux segments verticaux inférieurs doivent être basculés), et le 7SD entre 6 et 8 est 1 .
De plus, nous pouvons définir le 7SD entre deux nombres comme étant la somme des 7SD entre leurs chiffres correspondants. Si un nombre est plus long que l'autre, nous supposons qu'ils sont alignés à droite et ajoutons le nombre de segments nécessaires pour afficher les chiffres supplémentaires les plus significatifs du plus grand nombre. Par exemple, considérons le 7SD entre 12345
et 549
:
x: 1 2 3 4 5
y: 5 4 9
7SD: 2+5+2+0+1 = 10
Votre tâche consiste à calculer 7SD entre n et n + 1 , étant donné n .
Pour plus de commodité, voici le tableau complet des 7SD entre les chiffres individuels. La ligne _
représente une position vide.
_ 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
Contribution
- L'entrée est un seul entier positif
n
. - Vous pouvez écrire un programme ou une fonction, en prenant des entrées via STDIN (ou l'alternative la plus proche), un argument de ligne de commande ou un argument de fonction.
- Vous pouvez supposer que l'entrée est au plus un de moins que le plus grand nombre qui peut être représenté par le type entier standard de votre langue, tant que ce type prend en charge au moins des valeurs allant jusqu'à 127 inclus.
Sortie
- Vous devez imprimer un seul entier, le 7SD entre
n
etn+1
. - Vous pouvez sortir via STDOUT (ou l'alternative la plus proche), la valeur de retour de fonction ou l'argument de fonction (out).
Notation
Les règles de code-golf standard s'appliquent, le code le plus court (en octets) l'emporte.
Cas de test
Pour une raison obscure, cette séquence n'est pas encore dans OEIS, bien qu'il existe la séquence étroitement liée A123587 . Voici les 100 premiers chiffres (commençant par 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
La première entrée pour laquelle le 7SD est supérieur à 9 est celle 1999
qui devrait donner 11. Voici quelques autres exemples plus importants:
n 7SD
1999 11
12345 1
999999 14
5699999 15
8765210248 1