Myślę, że większość ludzi tutaj wie, czym jest 7-segmentowy wyświetlacz cyfr:
_ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_|
|_| | |_ _| | _| |_| | |_| _|
Możemy zdefiniować 7-segmentową różnicę (7SD) między dwiema cyframi, aby była liczbą segmentów, które muszą być przełączane, aby przełączać się z jednej na drugą. Np. 7SD między 1
i 2
wynosi 5 (trzy segmenty poziome i dolne dwa pionowe segmenty muszą być przełączane), a 7SD między 6 a 8 wynosi 1 .
Ponadto możemy zdefiniować 7SD między dwiema liczbami, aby były sumą 7SD między odpowiadającymi im cyframi. Jeśli jedna liczba jest dłuższa od drugiej, zakładamy, że są wyrównane do prawej i dodajemy liczbę segmentów potrzebną do wyświetlenia dodatkowych najbardziej znaczących cyfr większej liczby. Jako przykład rozważmy 7SD pomiędzy 12345
i 549
:
x: 1 2 3 4 5
y: 5 4 9
7SD: 2+5+2+0+1 = 10
Twoim zadaniem jest obliczenie 7SD między n i n + 1 , biorąc pod uwagę n .
Dla wygody, oto pełna tabela 7SD między poszczególnymi cyframi. Rząd _
reprezentuje pustą pozycję.
_ 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
Wkład
- Dane wejściowe to pojedyncza dodatnia liczba całkowita
n
. - Możesz napisać program lub funkcję, przyjmując dane wejściowe przez STDIN (lub najbliższą alternatywę), argument wiersza poleceń lub argument funkcji.
- Możesz założyć, że dane wejściowe są co najwyżej o jeden mniejsze od największej liczby, którą może reprezentować standardowy typ liczb całkowitych w Twoim języku, o ile ten typ obsługuje co najmniej wartości do 127 włącznie.
Wydajność
- Powinieneś wydrukować jedną liczbę całkowitą, 7SD pomiędzy
n
in+1
. - Możesz wyprowadzać dane poprzez STDOUT (lub najbliższą alternatywę), wartość zwracaną przez funkcję lub argument funkcji (out).
Punktacja
Obowiązują standardowe zasady gry w golfa , wygrywa najkrótszy kod (w bajtach).
Przypadki testowe
Z jakiegoś niejasnego powodu ta sekwencja nie jest jeszcze w OEIS, chociaż istnieje ściśle powiązana sekwencja A123587 . Oto pierwsze 100 liczb (zaczynających się od 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
Pierwsze wejście, dla którego 7SD jest większe niż 9, 1999
powinno dać 11. 11. Oto kilka innych większych przykładów:
n 7SD
1999 11
12345 1
999999 14
5699999 15
8765210248 1