Pozitif bir tamsayıdaki dijital kök (aynı zamanda tekrarlanan dijital toplam), bir rakam toplamını hesaplamak için önceki yinelemenin sonucunu kullanarak her bir yinelemede yinelemeli toplama rakamları ile elde edilen (tek basamaklı) değerdir. İşlem, tek basamaklı bir sayı elde edilene kadar devam eder.
Örneğin, dijital kök 65536 olan 7 , çünkü 6 + 5 + 5 + 3 + 6 = 25 ve 2 + 5 = 7 .
Tüm dijital kökleri sıralamak pek bir anlam ifade etmiyor, çünkü sonsuz sayıda 1 saniye ile başlayacak .
Bunun yerine, dijital kökleriyle birlikte tüm tek basamaklı tam sayıların, ardından dijital kökleriyle birlikte tüm çift basamaklı sayıların, ardından üçlü, dörtlü vb. Listelerini oluşturacağız.
Şimdi, bu listelerin her biri için, 1'in dijital kökleri olan tüm tam sayıların önce görünmesini, sonra da 2'nin dijital kökleri olan tüm tam sayıların görünmesini sağlayacak şekilde sıralayacağız . Sıralama sabit olacaktır, böylece belirli bir dijital köklü tamsayıların listesi sıralamadan sonra artan sırada olmalıdır.
Sonunda bu listeleri tek bir dizide birleştireceğiz. Bu sıra, tüm tek basamaklı sayılarla, ardından tüm çift basamaklı sayılarla (dijital köklerine göre sıralanır), sonra tüm üçlü basamaklı sayılarla başlar.
Meydan okuma:
Bir al pozitif tam sayı n girdi olarak alır ve çıkışı , n sırayla inci yukarıda tanımlanan'. Listenin 0 -tekslenmiş olup 1 -dekslenmiş olmasını seçebilirsiniz.
Dizi şöyle gider:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 19, 28, 37, 46, 55, 64, 73, 82, 91, 11, 20, 29 ...
72, 81, 90, 99, 100, 109, 118, ...
981, 990, 999, 1000, 1009, 1018, 1027, ...
Test durumları:
Test vakaları 1 indekslidir.
n f(n)
9 9
10 10
11 19
40 13
41 22
42 31
43 40
44 49
45 58
600 105
601 114
602 123
603 132
604 141
605 150
4050 1453
4051 1462
4052 1471
4053 1480
4054 1489
4055 1498
Kopyalamak daha kolay:
n = 9, 10, 11, 40, 41, 42, 43, 44, 45, 600, 601, 602, 603, 604, 605, 4050, 4051, 4052, 4053, 4054, 4055,
f(n) = 9, 10, 19, 13, 22, 31, 40, 49, 58, 105, 114, 123, 132, 141, 150, 1453, 1462, 1471, 1480, 1489, 1498
Açıklamalar:
- N ilk öğenin tümünü çıkartamayabilirsiniz. Yalnızca çıkış -acak n 'inci.
- Kodun teorik olarak 10 ^ 9'a kadar olan tüm tamsayılar için çalışması gerekir , ancak 999'dan daha büyük girişler için TIO'da (veya zaman kısıtlamalı diğer tercümanlarda) zaman aşımına uğrarsa sorun olmaz .
- Açıklamalar teşvik edilir.
Bu kod golf , yani her dilde en kısa kod kazanıyor! Yönetmek istediklerinizden daha kısa olsalar bile, golf oynamak istediğiniz dilde başka çözümler tarafından cesaretlenmeyin!