Görev:
Ondalık sayı sistemindeki bir tam sayı verildiğinde, aşağıdaki gibi tek bir ondalık basamağa düşürün:
- Sayıyı ondalık basamak listesine dönüştürün.
- En büyük rakamı bul, D
- D'yi listeden çıkarın. Birden fazla D oluşumu varsa, soldan ilkini seçin (en önemli pozisyonda), diğerleri sağlam kalmalıdır.
- Sonuçtaki listeyi ondalık sayıya dönüştürün ve D ile çarpın.
- Sayı 9'dan büyükse (1 ondalık basamaktan büyükse), sonucu besleyerek tüm işlemi tekrarlayın. Tek basamaklı bir sonuç aldığınızda durun.
- Sonucu göster.
Örnek:
26364 ->
1. 2 6 3 6 4
2. The largest digit is 6, so D=6
3. There are two occurrences or 6: at positions 1 and 3 (0-based). We remove the left one,
at position 1 and get the list 2 3 6 4
4. we convert the list 2 3 6 4 to 2364 and multiply it by D:
2364 * 6 = 14184
5. 14184 is greater than 9 so we repeat the procedure, feeding 14184 into it.
14184 vb. İçin prosedürü tekrarlayarak devam ediyoruz ve aşağıdaki ara sonuçlardan geçiyoruz, sonunda 8'e ulaşıyoruz:
11312
3336
1998
1782
1376
952
468
368
288
224
88
64
24
8
Yani 26364 için sonuç 8'dir.
Girdi: Bir tamsayı / bir tamsayıyı temsil eden bir dize
Çıktı: Sayıya uygulanan azaltmanın sonucu olan tek bir rakam.
Test durumları:
9 -> 9
27 -> 4
757 -> 5
1234 -> 8
26364 -> 8
432969 -> 0
1234584 -> 8
91273716 -> 6
Bu kod golf , yani her dilde bayt cinsinden en kısa cevaplar kazanır.
10 -> 10
?