Sanırım buradaki çoğu insan, rakamlar için 7 segmentli bir ekranın ne olduğunu biliyor:
_ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_|
|_| | |_ _| | _| |_| | |_| _|
İki basamak arasındaki 7 bölüm farkını ( 7 SD) , birinden diğerine geçmek için değiştirilmesi gereken bölüm sayısı olarak tanımlayabiliriz . Örneğin arasında 7SD ve bir 5 (üç yatay segmentler ve alt iki dikey segmentler konuma getirilebilir gerekir), ve 6 ve 8 arasında 7SD 1 .1
2
Ayrıca, iki sayı arasındaki 7SD'yi, karşılık gelen haneler arasındaki 7SD'lerin toplamı olarak tanımlayabiliriz. Bir sayı diğerinden daha uzunsa, sağa hizalı olduklarını varsayıyoruz ve daha büyük sayının diğer en önemli basamağını görüntülemek için gereken segment sayısını ekledik. Örnek olarak, 12345
ve arasındaki 7SD'yi düşünün 549
:
x: 1 2 3 4 5
y: 5 4 9
7SD: 2+5+2+0+1 = 10
Göreviniz etmektir arasındaki 7SD hesaplamak n ve n + 1 , verilen n .
Kolaylık sağlamak için, bireysel rakamlar arasındaki 7SD'lerin tam tablosu. Satır _
boş bir konumu temsil eder.
_ 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
Giriş
- Giriş, tek bir pozitif tamsayıdır
n
. - STDIN (veya en yakın alternatif), komut satırı argümanı veya işlev argümanı üzerinden girdi alarak bir program veya işlev yazabilirsiniz.
- Girişin, dilinizin standart tamsayı tipinde temsil edilebilecek en büyük sayıdan daha küçük olduğunu ve bu tip en az 127 olan ve en az 127 değer içeren değerleri desteklediği sürece kabul edebilirsiniz.
Çıktı
- Tek bir tamsayı arasındaki 7SD yazdırmalıdır
n
ven+1
. - STDOUT (veya en yakın alternatif), fonksiyon dönüş değeri veya function (out) argümanı ile çıkış alabilirsiniz.
puanlama
Standart kod-golf kuralları uygulanır, en kısa kod (bayt cinsinden) kazanır.
Test Kılıfları
Bazı belirsiz nedenlerden dolayı, bu dizi henüz OEIS'de değildir, ancak yakından ilgili sekans A123587 vardır . İşte ilk 100 sayı (başlayarak 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'nin 9'dan büyük olduğu ilk girdi, 11'ini 1999
vermelidir. İşte daha büyük bazı örnekler:
n 7SD
1999 11
12345 1
999999 14
5699999 15
8765210248 1