Вызов
Здесь, в PPCG, нам действительно нравятся наши последовательности, так что вот еще один интересный .
Давайте определим , a(n)
как наименьшее неотрицательное целое число X
, которое не равно ни a(k)
( 0 < k < n
), а также a(n-1)
и X
не имеют общих десятичных цифр.a(0) = 0
Учитывая вход n > 0
, выход такой a(n)
.
Например, для ввода n = 13
у нас есть a(13) = 20
, так как a(12) = 11
и 20
является наименьшим неотрицательным целым числом, которое мы еще не видели, с которым не делятся никакие десятичные цифры 11
.
Последовательность
Вот первые 20 условий, чтобы вы начали. Это последовательность A067581 в OEIS.
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 22, 11, 20, 13, 24, 15, 23, 14, 25
правила
- Можно предположить, что ввод и вывод соответствуют целочисленному типу вашего языка.
- Вход и выход могут быть предоставлены в любом удобном формате .
- Вы можете выбрать либо 0-индекс, как я здесь в моих примерах, либо 1-индекс для вашего представления. Пожалуйста, укажите, что вы делаете.
- Допустимы либо полная программа, либо функция. Если функция, вы можете вернуть вывод, а не распечатать его.
- Если возможно, укажите ссылку на среду онлайн-тестирования, чтобы другие люди могли опробовать ваш код!
- Стандартные лазейки запрещены.
- Это код-гольф, поэтому применяются все обычные правила игры в гольф, и выигрывает самый короткий код (в байтах).
n > 1
(илиn ≥ 2
) в качестве входных данных? (1-индексирование)Ответы:
Python 2 , 85 байт
-1 байт благодаря Мертвому Опоссуму
Попробуйте онлайн!
источник
n=0,
за -1 байт?Japt , 18 байт
Проверьте это онлайн! Я только что добавил
g
используемую здесь функцию, но это то, что я хотел добавить в течение долгого времени (и это подтолкнуло меня к краю, потому что мое нерешениеg
было около 35 байтов).объяснение
источник
Pyth , 20 байтов
Попробуйте онлайн! или попробуйте тестовый набор.
источник
Haskell, 79 байтов
Код ужасно неэффективен. Чтобы вычислить большие значения, т.е.> 12, добавьте
f x|x<11=x
между двумя строками (реализованоg
в ссылке TIO).Попробуйте онлайн!
источник
JavaScript (ES6), 82 байта
0 индексированные.
демонстрация
Показать фрагмент кода
источник
Шелуха , 18 байт
1-индексированное решение. Попробуйте онлайн!
Редактировать: исправлена ошибка в +1 байт.
объяснение
Встроенная итерационная функция Husk
¡
имеет много значений. Здесь я использую «создание бесконечного списка путем многократного добавления новых элементов, вычисленных из существующих». Вторая строка - это вспомогательная функция, которая вычисляет новый элемент:Первая строка - это основная функция:
источник
Haskell, 78 байт
Было бы еще эффективнее, если бы вторым аргументом был
!
бы не список видимых чисел, а невидимых чисел. Но я не могу сделать это без использования большего количества байтов.Попробуйте онлайн!
источник
Mathematica 115 байт
Все еще есть место для игры в гольф - и, возможно, использовать рекурсию (таким образом, ускоряя ее).
Оригинальный подробный код с той же основной идеей:
источник