Учитывая целое число в N
качестве входных данных, выведите N
пермутапалиндромное число.
Пермутапалиндромное число - это строго положительное целое число, так что существует хотя бы одна перестановка его цифр, которая приводит к палиндрому (то есть число, которое является его собственной обратной).
Например, 117
это пермутапалиндромное число, так как его цифры могут быть переставлены в 171
палиндром.
Мы считаем, что числа как 10
не являются permutapalindromic числа, хотя 01 = 1
это палиндром. Мы навязываем, что палиндромная перестановка не должна иметь ведущего нуля (как таковая, 0
сама по себе не является пермутапалиндромной).
Числа, которые уже являются палиндромами, также являются пермутапалиндромными, поскольку перестановка ничего не действительна.
Входы и выходы
N
может быть 0-индексирован или 1-индексирован. Пожалуйста, укажите, какой из двух ваших ответов используется.- Ввод может быть получен
STDIN
в качестве аргумента функции или чего-либо подобного на выбранном вами языке. Вывод может быть записанSTDOUT
, возвращен из функции или чем-либо подобным на выбранном вами языке. - Вход и выход должны быть в десятичной основе.
Контрольные примеры
Следующие тесты 1-индексированы. Ваша программа должна быть в состоянии пройти любой из тестовых примеров, представленных здесь, максимум за 1 минуту.
N Output
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 11
42 181
100 404
128 511
256 994
270 1166
счет
Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.
источник
10
)Ответы:
05AB1E ,
151413 байтСохранил байт благодаря Emigna ! Код:
Объяснение:
Использует кодировку CP-1252 . Попробуйте онлайн! ,
источник
µNœvyJÂïQ}O__½
для 14.Брахилог, 19 байт
Попробуйте онлайн!
Занимает около 17 секунд
N = 270
.объяснение
Основной предикат:
Предикат 1:
источник
Брахилог ,
2120 байт1 байт благодаря Fatalize.
Вы разработали задачу для Brachylog?
Попробуйте онлайн!
270 занимает около полминуты здесь.
Предикат 0 (основной предикат)
Предикат 1 (вспомогательный предикат)
источник
Пиф, 14
Попробуйте здесь или запустите Test Suite
Расширение:
источник
JavaScript (ES6), 99 байт
Объяснение:
источник
f=
когда вы обратитесь к нему позжеR 145 байтов
ungolfed
По сути - функция, проверяющая членство в пермутапалиндромном множестве и увеличивающая цикл while, пока не найдет n-й член.
источник
Python 2,7,
163154 байта:Достаточно просто. В основном используется
while
цикл многократно создавать массивы , содержащие permutapalindromic чисел диапазона ,[1,Q)
покаQ
не является достаточно большим , так что массив содержитInput
количество элементов. Затем он выводит последний элемент в этом массиве.Попробуйте онлайн! (Ideone)
источник
Perl 6 , 66 байт
0 основано
Объяснение:
Тестовое задание:
источник
Дьялог АПЛ , 51 байт
Один индексированные.
Мгновенно завершает все тесты на TryAPL
источник
a(n) <= 5n
?JavaScript (ES6), 92
Меньше гольфа
Тестовое задание
источник
Javascript (с использованием внешней библиотеки - Enumerable) (142 байта)
Ссылка на lib: https://github.com/mvegh1/Enumerable/
Объяснение кода: _.Sequence создает перечислимое число для «n» элементов на основе предиката подписи («i»
, «a», накопленный массив). Приведите текущую итерацию к строке и создайте из нее список всех перестановок. Проверьте, удовлетворяет ли какая-либо из перестановок тесту, не начинающемуся с «0», и что перестановка перестановки равна перестановке. Вернуть последний элемент в последовательности, потому что это желаемый результат согласно OPисточник
Python 2, 93 байта
1-индексироваться. В зависимости от вашей системы последний контрольный пример может превышать допустимую глубину рекурсии.
Не вычисляет перестановки. Вместо этого используется тот факт, что две строки являются перестановками, если они равны при сортировке. Чтобы проверить, является ли число пермутапалиндромным, проверяется, совпадают ли его отсортированные цифры с отсортированными цифрами любого палиндрома до границы.
96 байт:
1-индексироваться. В зависимости от вашей системы последний контрольный пример может превышать допустимую глубину рекурсии.
Это не смотрит на перестановки и вместо этого использует следующую характеристику:
Это верно, потому что палиндром должен спаривать цифры от начала и до конца, за исключением возможной центральной цифры. Исключением является требование, чтобы начальная цифра была ненулевой, и поэтому некоторая ненулевая цифра должна появляться дважды, если только число не однозначное.
источник
Haskell,
8987 байтисточник
C 254 байта
источник