Dado um número inteiro N
como entrada, N
imprima o número permutapalindrômico.
Um número permutapalindrômico é um número inteiro estritamente positivo, de modo que exista pelo menos uma permutação de seus dígitos que resulte em um palíndromo (isto é, um número que é seu próprio reverso).
Por exemplo, 117
é um número permutapalindrômico, pois seus dígitos podem ser permutados 171
, o que é um palíndromo.
Consideramos que números como 10
não são números permutapalindrômicos, mesmo sendo 01 = 1
um palíndromo. Nós impomos que a permutação palindrômica não deve ter um zero inicial (como tal, 0
ela própria não é permutapalindrômica).
Números que já são palíndromos também são permutapalindrômicos, pois permutar nada é válido.
Entradas e saídas
N
pode ser 0 ou 1. Indique qual dos dois a sua resposta usa.- A entrada pode ser acessada
STDIN
, como argumento de função, ou qualquer coisa semelhante no idioma de sua escolha. A saída pode ser gravadaSTDOUT
, retornada de uma função ou qualquer coisa semelhante no idioma de sua escolha. - A entrada e a saída devem estar na base decimal.
Casos de teste
Os seguintes casos de teste são indexados 1. Seu programa deve ser capaz de passar em qualquer um dos casos de teste apresentados aqui em no máximo 1 minuto.
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
Pontuação
Isso é código-golfe , então a resposta mais curta em bytes vence.
fonte
10
) #Respostas:
05AB1E ,
151413 bytesGuardou um byte graças a Emigna ! Código:
Explicação:
Usa a codificação CP-1252 . Experimente online! .
fonte
µNœvyJÂïQ}O__½
para 14.Braquilog, 19 bytes
Experimente online!
Demora cerca de 17 segundos para
N = 270
.Explicação
Predicado principal:
Predicado 1:
fonte
Braquilog ,
2120 bytes1 byte graças a Fatalize.
Você criou o desafio para o Brachylog?
Experimente online!
270 leva cerca de meio minuto aqui.
Predicado 0 (predicado principal)
Predicado 1 (predicado auxiliar)
fonte
Pyth, 14
Experimente aqui ou execute um Conjunto de Testes
Expansão:
fonte
JavaScript (ES6), 99 bytes
Explicação:
fonte
f=
quando você se referir a ele mais tardeR, 145 bytes
destroçado
Essencialmente - uma função que verifica a associação no conjunto permutapalindromic e um loop while incrementa até encontrar o enésimo membro.
fonte
Python 2.7,
163154 bytes:Simples o suficiente. Basicamente, usa um
while
loop para criar repetidamente matrizes contendo números permutapalindrômicos[1,Q)
até o intervalo até queQ
seja grande o suficiente para que a matriz contenha umInput
número de itens. Em seguida, ele gera o último elemento nessa matriz.Experimente Online! (Ideona)
fonte
Perl 6 , 66 bytes
Baseado em 0
Explicação:
Teste:
fonte
Dyalog APL , 51 bytes
Um indexado.
Conclui todos os casos de teste instantaneamente no TryAPL
fonte
a(n) <= 5n
?JavaScript (ES6), 92
Menos golfe
Teste
fonte
Javascript (usando biblioteca externa - Enumerable) (142 bytes)
Link para lib: https://github.com/mvegh1/Enumerable/
Explicação do código: _.Sequence cria um enumerável para uma contagem de "n" elementos, com base no predicado de assinatura ("i" declaração
, "uma" matriz acumulada). Converta a iteração atual em uma string e crie um enumerável de todas as permutações dela. Teste se alguma das permutações satisfaz o teste de não começar com "0" e que a reversão da permutação é igual à permutação. Retorne o último elemento na sequência porque essa é a saída desejada conforme OPfonte
Python 2, 93 bytes
1 indexado. Dependendo do seu sistema, o último caso de teste pode exceder a profundidade de recursão permitida.
Não calcula permutações. Em vez disso, usa o fato de que duas strings são permutações se forem iguais quando ordenadas. Para testar se um número é permutapalindrômico, verifica se seus dígitos classificados são iguais aos dígitos classificados de qualquer palíndromo até um limite.
96 bytes:
1 indexado. Dependendo do seu sistema, o último caso de teste pode exceder a profundidade de recursão permitida.
Isso não considera permutações e usa a seguinte caracterização:
Isso ocorre porque um palíndromo deve emparelhar dígitos do início e do fim, exceto por um possível dígito central. A exceção vem do requisito de que o dígito inicial seja diferente de zero e, portanto, algum dígito diferente de zero deve aparecer duas vezes, a menos que o número seja de um dígito.
fonte
Haskell,
8987 bytesfonte
C, 254 bytes
fonte