Заголовок составлен из «Номера индекса последовательности не».
Вызов:
Дано целое число , nкоторое >= 0, выведите n«й номер следующей последовательности.
Вот первые 50 элементов с индексом (0-index) над ним:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
1 0 3 2 5 4 7 6 9 8 22 20 30 24 23 26 25 28 27 32 11 33 10 14 13 16 15 18 17 31 12 29 19 21 50 40 41 42 44 45 35 36 37 51 38 39 52 53 55 56 34
Как работает эта последовательность?
Число в индексе nдолжно быть первым, чтобы не иметь общих цифр с n, и еще не встречалось для предыдущих индексов. Итак, когда мы посмотрим на нормальную последовательность, как это из 0-60:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
Мы определяем n'-ые значения следующим образом:
0: Первое число (0) содержит ту же цифру, поэтому мы ищем следующее (1), которое не содержит той же цифры. Итак,n=0выводы1.1: Первое число (0) не содержит одинаковую цифру, поэтомуn=1выводится0.2: Мы уже встречали0и1, и следующая цифра (2) содержит ту же цифру, поэтому мы ищем следующую (3), которая не содержит той же цифры. Итак,n=2выводы3.- ...
10: Мы уже встречались0-9, поэтому следующий в очереди10.10-19содержит совпадающую цифру1,20содержит совпадающую цифру0, снова21содержит совпадающую цифру1,22является действительным, поэтомуn=10выводит22.- и т.п.
Правила соревнований:
- Если ваш язык индексируется 1 (или вы выбираете), вы можете начать последовательность с
3 2 5 4 7 ...(пропуская1atn=0и0atn=1). - Минимальный наибольший индекс, который вы должны поддерживать, это
25,000. ПРИМЕЧАНИЕ. Последовательность заканчивается индексом1,023,456,788, поскольку следующий индекс в строке содержит все 10 цифр. - Вы также можете выводить / возвращать массив / список всей последовательности вплоть до индекса,
nесли хотите.
Основные правила:
- Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.
Не позволяйте языкам кода-гольфа отговаривать вас от публикации ответов на языках, не относящихся к кодексу. Попробуйте придумать как можно более короткий ответ для «любого» языка программирования. - К вашему ответу применяются стандартные правила , поэтому вы можете использовать STDIN / STDOUT, функции / метод с правильными параметрами и типом возврата, полные программы. Ваш звонок.
- По умолчанию лазейки запрещены.
- Если возможно, добавьте ссылку с тестом для вашего кода.
- Также, пожалуйста, добавьте объяснение, если это необходимо.
Тестовые случаи:
Эта последовательность фактически создала пары относительно индекса и выходов. Если индекс nвыводит o, индекс oвыводит n. Таким образом, вы можете ввести либо левую, либо правую, и вывод будет с другой стороны:
0 <-> 1 (this test case is optional)
2 <-> 3
10 <-> 22
12 <-> 30
34 <-> 50
89 <-> 100
111 <-> 200
112 <-> 300
199 <-> 322
2231 <-> 4456
9605 <-> 11118
19235 <-> 46000
23451 <-> 60668
25000 <-> 13674
Вот пастбин из первых 25 001 контрольных примеров, если вы хотите попробовать другие.