Задача:
Учитывая целое число в десятичной системе счисления, уменьшите его до одной десятичной цифры следующим образом:
- Преобразуйте число в список десятичных цифр.
- Найти самую большую цифру, D
- Удалить D из списка. Если D встречается несколько раз, выберите первое слева (в наиболее значимой позиции), все остальные должны остаться нетронутыми.
- Преобразовать полученный список в десятичное число и умножить его на D.
- Если число больше 9 (имеет более 1 десятичной цифры), повторите всю процедуру, вводя в нее результат. Остановитесь, когда вы получите однозначный результат.
- Показать результат.
Пример:
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 и так далее, и мы проходим следующие промежуточные результаты, в конечном итоге достигая 8:
11312
3336
1998
1782
1376
952
468
368
288
224
88
64
24
8
Таким образом, результат для 26364 - 8.
Входные данные: целое число / строка, представляющая целое число
Выход: одна цифра, результат сокращения, примененный к числу.
Тестовые случаи:
9 -> 9
27 -> 4
757 -> 5
1234 -> 8
26364 -> 8
432969 -> 0
1234584 -> 8
91273716 -> 6
Это код-гольф , поэтому выигрывают самые короткие ответы в байтах на каждом языке.
10 -> 10
?