Tek bir pozitif tamsayı N ve bir ondalık basamak dizesi ( 0123456789
) alan bir program veya işlev yazın . Dize, on durumlu tek boyutlu bir hücresel otomatı temsil eder . Her basamak bir hücreyi işgal eder ve bir nesilden diğerine güncelleme kuralı, her hücrenin, modulo 10 üzerinde merkezlenen N hücrelerinin toplamından kaynaklanan basamak haline gelmesidir.
İlk ve son hücreler komşularmış gibi sarılır, böylece hücrelerin her zaman üzerinde N hücreleri olabilir. N'nin dizenin uzunluğundan daha büyük olabileceğine dikkat edin, bu da birden çok kez sarılabileceği ve buna bağlı olarak bazı rakamların toplamda birden çok kez olacağı anlamına gelir.
Örnek olarak, eğer N 7 ve dize ise 038
, hücrelerin toplamını görselleştirmek için 038
her iki yönde sonsuz tekrar tekrar yazabiliriz
...038038038038038...
o 0
zaman değişecek olan rakam 0
, herhangi bir modulo 10 etrafında ortalanmış 7 basamağın toplamıdır :
...038038038038038...
^_____^
|
sum all these
Bu, (0+3+8+0+3+8+0)%10
öyle 2
.
Benzer şekilde parmaklara 3
ve 8
tanımlanır, değişikliği (3+8+0+3+8+0+3)%10
= 5
ve (8+0+3+8+0+3+8)%10
= 0
sırasıyla.
Bu nedenle, üretim sonrası 038
bir 250
N R7 olduğunda.
Programınızın veya işlevinizin, yeni nesil giriş basamak dizesinin basamak dizesini yazdırması veya döndürmesi gerekir. yani güncelleme kuralını her hücreye bir kez uygulayın ve çıktıyı verin. Bayt cinsinden en kısa kod kazanır.
Test Durumları
[digit string] -> [N = 1], [N = 3], [N = 5], [N = 7], [N = 9], [N = 43]
0 -> 0, 0, 0, 0, 0, 0
1 -> 1, 3, 5, 7, 9, 3
2 -> 2, 6, 0, 4, 8, 6
3 -> 3, 9, 5, 1, 7, 9
4 -> 4, 2, 0, 8, 6, 2
5 -> 5, 5, 5, 5, 5, 5
6 -> 6, 8, 0, 2, 4, 8
7 -> 7, 1, 5, 9, 3, 1
8 -> 8, 4, 0, 6, 2, 4
9 -> 9, 7, 5, 3, 1, 7
00 -> 00, 00, 00, 00, 00, 00
07 -> 07, 47, 41, 81, 85, 47
10 -> 10, 12, 32, 34, 54, 12
11 -> 11, 33, 55, 77, 99, 33
12 -> 12, 54, 78, 10, 34, 54
34 -> 34, 10, 78, 54, 12, 10
66 -> 66, 88, 00, 22, 44, 88
80 -> 80, 86, 46, 42, 02, 86
038 -> 038, 111, 294, 250, 333, 472
101 -> 101, 222, 343, 545, 666, 989
987 -> 987, 444, 901, 765, 222, 543
1234 -> 1234, 7698, 3412, 9876, 1234, 7698
26697 -> 26697, 54128, 00000, 56982, 84413, 54128
001002 -> 001002, 211122, 331332, 335334, 455544, 113112
129577020 -> 129577020, 326194923, 474081605, 961120291, 333333333, 183342413
6023845292173530 -> 6023845292173530, 6853571632015189, 1197228291289874, 9238433109901549, 0110956118726779, 1982123699138828