Biorąc pod uwagę liczbę całkowitą N
jako dane wejściowe, N
wypisz th permutapalindromic number.
Liczba permutapalindromowa jest ściśle dodatnią liczbą całkowitą, tak że istnieje co najmniej jedna permutacja jej cyfr, która powoduje palindrom (tj. Liczba, która jest własną odwrotnością).
Na przykład 117
jest liczbą permutapalindromiczną, ponieważ jej cyfry mogą być permutowane 171
, co jest palindromem.
Uważamy, że liczby podobne 10
nie są liczbami permutapalindromicznymi, nawet jeśli 01 = 1
są palindromem. Narzucamy, że permutacja palindromiczna nie może mieć wiodącego zera (jako taka 0
sama w sobie nie jest permutapalindromiczna).
Liczby, które są już palindromami, są również permutapalindromiczne, ponieważ dopuszczanie niczego nie jest poprawne.
Wejścia i wyjścia
N
może być indeksowany 0 lub indeksowany 1. Wskaż, którego z nich używa Twoja odpowiedź.- Dane wejściowe można przejrzeć
STDIN
jako argument funkcji lub dowolną podobną rzecz w wybranym języku. Dane wyjściowe mogą być zapisywaneSTDOUT
, zwracane z funkcji lub z dowolnego podobnego elementu w wybranym języku. - Dane wejściowe i wyjściowe muszą być w systemie dziesiętnym.
Przypadki testowe
Następujące przypadki testowe mają indeks 1. Twój program musi być w stanie przejść dowolny z przedstawionych tutaj przypadków testowych w ciągu 1 minuty.
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
Punktacja
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
źródło
10
)Odpowiedzi:
05AB1E ,
151413 bajtówOszczędność bajtu dzięki Emignie ! Kod:
Wyjaśnienie:
Wykorzystuje kodowanie CP-1252 . Wypróbuj online! .
źródło
µNœvyJÂïQ}O__½
dla 14.Brachylog, 19 bajtów
Wypróbuj online!
Trwa około 17 sekund
N = 270
.Wyjaśnienie
Główny predykat:
Predykat 1:
źródło
Brachylog ,
2120 bajtów1 bajt dzięki Fatalize.
Czy zaprojektowałeś wyzwanie dla Brachylog?
Wypróbuj online!
270 zajmuje tutaj około pół minuty.
Predykat 0 (główny predykat)
Predykat 1 (predykat pomocniczy)
źródło
Pyth, 14 lat
Wypróbuj tutaj lub uruchom pakiet testowy
Ekspansja:
źródło
JavaScript (ES6), 99 bajtów
Wyjaśnienie:
źródło
f=
kiedy odniesiesz się do tego późniejR, 145 bajtów
bez golfa
Zasadniczo - funkcja sprawdzająca członkostwo w zestawie permutapalindromic i zwiększająca się pętla while, aż znajdzie n-ty element.
źródło
Python 2.7,
163154 bajty:Wystarczająco proste. Zasadniczo używa
while
pętli do wielokrotnego tworzenia tablic zawierających liczby permutapalindromiczne zakresu,[1,Q)
ażQ
będzie wystarczająco duży, aby tablica zawierałaInput
liczbę elementów. Następnie wyprowadza ostatni element w tej tablicy.Wypróbuj online! (Ideone)
źródło
Perl 6 , 66 bajtów
W oparciu o 0
Wyjaśnienie:
Test:
źródło
Dyalog APL , 51 bajtów
Jeden indeksowany.
Kończy wszystkie przypadki testowe natychmiast na TryAPL
źródło
a(n) <= 5n
?JavaScript (ES6), 92
Mniej golfa
Test
źródło
JavaScript (przy użyciu zewnętrznej biblioteki - Enumerable) (142 bajty)
Link do lib: https://github.com/mvegh1/Enumerable/
Wyjaśnienie kodu: _.Sequence tworzy wyliczenie dla liczby elementów „n”, na podstawie predykatu podpisu („i” teration
, „a” ccumulated array). Rzuć bieżącą iterację na ciąg i utwórz z niej wyliczenie wszystkich permutacji. Sprawdź, czy którakolwiek z permutacji spełnia test polegający na tym, że nie zaczyna się od „0” i czy odwrócenie permutacji jest równe permutacji. Zwraca ostatni element w sekwencji, ponieważ jest to pożądany wynik według OPźródło
Python 2, 93 bajty
1-indeksowany. W zależności od systemu ostatni przypadek testowy może przekroczyć dozwoloną głębokość rekurencji.
Nie oblicza permutacji. Zamiast tego wykorzystuje fakt, że dwa ciągi są permutacjami, jeśli są one równe podczas sortowania. Aby sprawdzić, czy liczba jest permutapalindromiczna, sprawdź, czy jej posortowane cyfry są równe posortowanym cyfrom dowolnego palindromu do granicy.
96 bajtów:
1-indeksowany. W zależności od systemu ostatni przypadek testowy może przekroczyć dozwoloną głębokość rekurencji.
To nie patrzy na permutacje, a zamiast tego wykorzystuje następującą charakterystykę:
Dzieje się tak, ponieważ palindrom musi sparować cyfry od początku i na końcu, z wyjątkiem możliwej cyfry środkowej. Wyjątek wynika z wymogu, aby cyfra wiodąca była niezerowa, dlatego niektóre cyfry niezerowe muszą pojawiać się dwukrotnie, chyba że liczba jest jednocyfrowa.
źródło
Haskell,
8987 bajtówźródło
C, 254 bajty
źródło