ここにいるほとんどの人は、数字の7セグメントディスプレイが何であるかを知っていると思います。
_ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_|
|_| | |_ _| | _| |_| | |_| _|
2 桁間の7セグメントの差(7SD)を、一方から他方に切り替えるために切り替える必要があるセグメントの数として定義できます。例えば7SD間となる5(3つの水平セグメント及び下部二つの垂直セグメントをトグルする必要がある)、及び6と8との間7SDである1。1
2
さらに、2つの数値間の7SDを、対応する数字間の7SDの合計と定義できます。1つの数値が他の数値よりも長い場合、それらは右揃えであると想定し、大きい数値の最上位の桁を表示するために必要なセグメントの数を追加します。例として、間7SDを考慮12345
して549
:
x: 1 2 3 4 5
y: 5 4 9
7SD: 2+5+2+0+1 = 10
あなたの仕事は、nが与えられた場合、nとn + 1の間の7SDを計算することです。
便宜上、個々の数字の間の7SDの完全な表を以下に示します。行_
は空の位置を表します。
_ 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
入力
- 入力は単一の正の整数
n
です。 - STDIN(または最も近い代替)、コマンドライン引数、または関数引数を介して入力を取得して、プログラムまたは関数を作成できます。
- 入力が最大127を含む値をサポートしている限り、言語の標準整数型で表現できる最大数よりも最大で1つ少ないと仮定できます。
出力
- 単一の整数、との間の7SDを印刷する必要が
n
ありn+1
ます。 - STDOUT(または最も近い代替)、関数の戻り値、または関数(out)引数を介して出力できます。
得点
標準のコードゴルフ規則が適用され、最短のコード(バイト単位)が優先されます。
テストケース
何らかのあいまいな理由で、このシーケンスはまだOEISにありませんが、密接に関連するシーケンスA123587があります。以下に、最初の100個の数字(で始まる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
7SDが9より大きい最初の入力は1999
11になります。他の大きな例を次に示します。
n 7SD
1999 11
12345 1
999999 14
5699999 15
8765210248 1