Dado um número inteiro não negativo n, enumere todos os números palindrômicos (em decimal) entre 0 e n (intervalo inclusivo). Um número palíndrico permanece o mesmo quando seus dígitos são revertidos.
Os primeiros números palíndricos (na base 10) são dados aqui :
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99, 101, 111, 121, 131, 141, 151, 161, 171, 181, 191, 202, 212, 222, 232, 242, 252, 262, 272, 282, 292, 303, 313, 323, 333, 343, 353, 363, 373, 383, 393, 404, 414, 424, 434, 444, 454, 464, 474, 484, 494, 505, 515, ...
Este é um código de golfe com o prêmio chegando ao menor número de caracteres. Os números palíndricos devem ser impressos um por linha para stdout. O programa deve ler n na linha de comando ou stdin.
n
parte do intervalo a incluir?Respostas:
Golfscript, 15 caracteres
fonte
Caracteres Perl 5.10, 29 (ou 39)
Precisa do
say
recurso ativado. 29 caracteres se você considerar que isso é gratuito, caso contrário, 39 para adicionaruse 5.010;
. Argumento sobre STDIN.Perl, 35 caracteres
usando a convenção perlgolf antiga que
#!perl
não é contada, mas que qualquer sinalização a seguir.Perl, 36 caracteres
Se nenhum dos outros se qualificar.
fonte
$/
é o separador de registros de entrada, o padrão é nova linha. É apenas um pouco menor que o literal"\n"
.map{say if$_==reverse}0..<>
-E
em vez disso-e
, receberásay
gratuitamente.Befunge
320313303 caracteres(incluindo novas linhas e espaços em branco significativos)
Eu me pergunto se eu poderia fazer isso menor redirecionando os caminhos ...
Editar: refez a parte superior para evitar uma linha extra.
fonte
Perl 5.10 - 27 caracteres
map{say if$_==reverse}0..<>
Lê o argumento de stdin.
fonte
Ruby 1.9, 39 caracteres
Entrada (não deve ser finalizada com uma nova linha) via stdin. Exemplo de invocação:
40 caracteres para uma versão que usa argumentos de linha de comando:
fonte
p
vez deputs
.irb(main):023:0> p (?0..gets).select{|i|i==i.reverse} 1 ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "11", "22", "33", "44", "55", "66", "77", "88", " 99"] => ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "11", "22", "33", "44", "55", "66", "77", "88" , "99"]
O código abaixo funciona para mimp ('0'..gets[0..-2]).select{|i|i==i.reverse}
Você poderia explicar seu código.p
eputs
não são equivalentes, na verdade, o uso dep
quebras na saída, pois o put escreve todos os elementos em uma nova linha, se chamada com uma matriz , enquantop
simplesmente chama.to_s
.J , 20 caracteres
fonte
,"0
.,.
funciona #Python,
5751 caracteresUso:
fonte
for i in range(input()):if`i`==`i`[::-1]:print i
print
e apenas o fazif`i`==`i`[::-1]:i
(digo isso porque a solução Scala depende disso).Perl> 5.10: 25 caracteres
fonte
APL (
2517)fonte
Javascript
122108107 caracteres ...Tenho certeza de que isso pode ser mais jogado de golfe - sou novo nisso!
ou
fonte
var
s são desnecessários, você pode simplesmente tornar as coisas globais. Tambémprompt()
não precisa estritamente de parâmetros.prompt()
salvar um ponto e vírgula:n=prompt(o=[]);
.var i=0
que pode servar
removido no seufor
.i++<n
comparari<n
antes de adicionar 1 ai
. Assim, ele corre até o fimi=n
. Se você quisesse parari=n-1
, usaria++i<n
.alert(o.join(" "))
precisa estar dealert(o.join("\n"))
acordo com as especificações. Adicione 1 à sua contagem de caracteres quando você corrigir isso.Perl - 43 caracteres
Esta é a minha primeira tentativa de código de golfe, por isso tenho certeza de que um profissional de Perl poderia jogar golfe de baixo.
fonte
Haskell 66 caracteres
fonte
PHP
6458Alterou $ _GET ['n'] para $ argv [1] para entrada de linha de comando.
fonte
Scala 59
fonte
readInt
por um número concreto, online.PHP,
595553 caracteresUso
Edit: obrigado Thomas
fonte
echo "$i\n"
para obterecho"$i\n"
. Isso economizará alguns caracteres. Além disso, se você quiser ser atrevido, pode mudar\n
para `` e salvar um caractere.C, 98 caracteres
fonte
k (23 caracteres)
fonte
Mathematica 61
fonte
Befunge, 97 (tamanho da grade 37x4 = 148)
Tenha uma resposta melhor do Befunge para esta pergunta. Este é o Befunge-93 especificamente; Eu provavelmente poderia torná-lo ainda mais compacto com o Befunge-98. Vou incluir isso em uma edição futura.
Como você não pode operar em seqüências de caracteres no Befunge, o melhor que pude fazer foi calcular o dígito inverso de cada número (o que me surpreende ter sido capaz de gerenciar sem
p
eg
) e compará-lo com o número original. O dígito reverso ocupa a maior parte do código (basicamente a terceira e quarta linhas inteiras).Observe que o programa, como está agora, imprime os números de trás para frente a zero. Se isso é um grande problema, me avise. (O desafio diz apenas enumerá-las, não especificamente em ordem crescente.)
fonte
\n
sozinhas, por isso têm 94 bytes. Eu não acho que o seu "tamanho da grade" tenha alguma relevância particular.05AB1E , 5 bytes (não concorrente)
O idioma é posterior ao desafio e, portanto, não é competitivo . Código:
Explicação:
Usa a codificação CP-1252 . Experimente online! .
fonte
LʒÂQ
é 4, ainda não competindo ..Brachylog (2), pergunta após a data do idioma:
Com o formato de E / S indicado na pergunta, 8 bytes
Experimente online!
Com as modernas regras de E / S PPCG, 4 bytes
Experimente online!
Essa é uma função que gera todas as saídas, não um programa completo como o exemplo anterior, e portanto não está em conformidade com as especificações escritas, mas pensei em mostrar como seria o programa se a pergunta tivesse sido escrita aos modernos padrões de E / S (que permitem o uso de funções e saída via geradores).
Explicação
Para a versão completa do programa, criamos uma variável temporária
A
para armazenar a saída, rotulá-la explicitamente (isso é feito implicitamente para o principal predicado de um programa) e usamos aẉ⊥
técnica conhecida para enviar os elementos de um gerador para a saída padrão.fonte
Pitão
fonte
Groovy, 83
fonte
Q (34 caracteres)
Passe n em vez de n + 1 como argumento para esta solução Q.
fonte
Q, 32
fonte
Q (33)
Provavelmente, é uma maneira mais clara de fazer isso, mas, de qualquer maneira, use exemplos (você insere n + 1 para chegar a n):
Sugestão de tmartin, reduz para 29:
Mesmo uso.
fonte
Python, 106 caracteres
uso:
fonte
C # (
217214191 caracteres)Versão Golfed:
Legível:
Isso imprime palíndromos em ordem decrescente, usando o operador n -> 0. (como n vai para 0).
* A versão editada substitui do ... while com while, economizando 3 caracteres, mas agora você deve inserir com n + 1.
* editado: encontrou uma maneira melhor de reverter a string sem converter em array:
Legível:
fonte
PHP 53
53 pode ser mais baixo? Quatro opções diferentes:
Se você quiser se divertir ...
PHP 47
Você precisa ignorar o texto do erro. Os números do palíndromo ainda são exibidos na linha de comando.
fonte
Pyth, 11
Exemplo:
fonte