- 22, Oct 2024
- #1
Определим функцию a для натуральных чисел \$n\$, записанных в виде десятизначного числа \$d_k\; d_{k-1}\; \точка\; д_1\; d_0\$, следующим образом:
Если соседние цифры \$d_i\;d_{i-1}\$ равны, замените их суммой \$d_i+d_{i-1}\$ слева направо. Если такие цифры были, повторите ту же процедуру.
Другими словами, на каждой итерации мы жадно берем все пары одинаковых соседних цифр и заменяем их суммой одновременно (используя самую левую пару, если они перекрываются).
Пример
Возьмем, к примеру, \$\texttt{9988}\$:
- Первые соседние цифры, которые равны, — это две \$\texttt{9}\$
- Поэтому мы заменяем их на \$\texttt{9 + 9} = \texttt{18}\$, что дает нам \$\texttt{1888}\$
- Поскольку мы все еще находимся на первом обходе слева направо и еще было два \$\texttt{8}\$s, нам нужно сначала заменить эти
- Итак, мы получаем \$\texttt{1816}\$
- Что-то изменилось, поэтому нам нужно сделать еще одну итерацию
- Но таких цифр нет, поэтому остановимся
Следовательно, число \$9988^\text{th}\$ в этой последовательности равно \$1816\$.
Испытание
Первые 200 терминов:
222 -> 42 1633 -> 4 4488 -> 816 15519 -> 2019 19988 -> 2816 99999 -> 18189 119988 -> 21816 100001 -> 101 999999 -> 181818
Ваша задача — сгенерировать эту последовательность, либо
- учитывая \$n\$, верните число \$n^\text{th}\$ в этой последовательности,
- учитывая \$n\$, верните первые числа \$n\$ в этой последовательности
- или генерировать последовательность бесконечно.
Вы можете выбрать для своей отправки индексацию \$0\$- или \$1\$, но укажите, какую именно.
Тестовые случаи
Вы можете использовать приведенные выше термины, однако вот несколько более крупных:
0,1,2,3,4,5,6,7,8,9,10,2,12,13,14,15,16,17,18,19,20,21,4,23,24,25,26,27,28,29,30,31,32,6,34,35,36,37,38,39,40,41,42,43,8,45,46,47,48,49,50,51,52,53,54,10,56,57,58,59,60,61,62,63,64,65,12,67,68,69,70,71,72,73,74,75,76,14,78,79,80,81,82,83,84,85,86,87,16,89,90,91,92,93,94,95,96,97,98,18,10,101,102,103,104,105,106,107,108,109,20,21,4,23,24,25,26,27,28,29,120,121,14,123,124,125,126,127,128,129,130,131,132,16,134,135,136,137,138,139,140,141,142,143,18,145,146,147,148,149,150,151,152,153,154,20,156,157,158,159,160,161,162,163,164,165,4,167,168,169,170,171,172,173,174,175,176,24,178,179,180,181,182,183,184,185,186,187,26,189,190,191,192,193,194,195,196,197,198,28
#код-гольф #последовательность #целое число