Dado un número entero no negativo n, enumere todos los números palindrómicos (en decimal) entre 0 yn (rango inclusivo). Un número palindrómico permanece igual cuando se invierten sus dígitos.
Los primeros números palindrómicos (en base 10) se dan aquí :
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 es un código de golf con el premio que va a menos personajes Los números palindrómicos deben enviarse uno por línea a stdout. El programa debería leer n desde la línea de comandos o stdin.
n
parte del rango a incluir?Respuestas:
Golfscript, 15 caracteres
fuente
Perl 5.10, 29 (o 39) caracteres
Necesita la
say
función habilitada. 29 caracteres si considera que es gratis, de lo contrario 39 para agregaruse 5.010;
. Argumento sobre STDIN.Perl, 35 caracteres.
usando la antigua convención de perlgolf que
#!perl
no se cuenta, pero sí las banderas que la siguen.Perl, 36 caracteres
Si ninguno de los otros califica.
fuente
$/
es el separador de registro de entrada, que por defecto es nueva línea. Es solo un poco más corto que literal"\n"
.map{say if$_==reverse}0..<>
-E
en lugar de-e
, lo obtienesay
de forma gratuita.Befunge
320313303 caracteres(incluidas nuevas líneas y espacios en blanco significativos)
Me pregunto si podría hacer esto más pequeño cambiando el ruteo de los caminos ...
Editar: vuelve a hacer la parte superior para evitar una línea extra.
fuente
Perl 5.10 - 27 caracteres
map{say if$_==reverse}0..<>
Lee el argumento de stdin.
fuente
Ruby 1.9, 39 caracteres
Entrada (no debe terminarse con una nueva línea) a través de stdin. Ejemplo de invocación:
40 caracteres para una versión que usa argumentos de línea de comandos:
fuente
p
lugar 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"]
El siguiente código funciona para míp ('0'..gets[0..-2]).select{|i|i==i.reverse}
¿Podría explicar su código?p
yputs
no son equivalentes, de hecho, el usop
rompe la salida, ya que coloca cada elemento en una nueva línea, si se llama con una matriz , mientras quep
simplemente llama.to_s
.J , 20 caracteres
fuente
,"0
.,.
funcionaPython,
5751 caracteresUso:
fuente
for i in range(input()):if`i`==`i`[::-1]:print i
print
y hacerloif`i`==`i`[::-1]:i
(lo digo porque la solución de Scala depende de esto).Perl> 5.10: 25 caracteres
fuente
APL (
2517)fuente
Javascript
122108107 caracteres ...Estoy seguro de que esto se puede jugar más, ¡soy nuevo en esto!
o
fuente
var
s no son necesarios, puedes hacer que las cosas sean globales. Tampocoprompt()
necesita estrictamente parámetros.prompt()
salvar una coma:n=prompt(o=[]);
.var i=0
que puede tener elvar
eliminado en sufor
.i++<n
comparai<n
antes de sumar 1 ai
. Por lo tanto, se ejecuta todo el camino hastai=n
. Si quisieras detenertei=n-1
, lo usarías en su++i<n
lugar.alert(o.join(" "))
necesita estar dealert(o.join("\n"))
acuerdo con las especificaciones. Agrega 1 a tu cuenta de personaje cuando arregles esto.Perl - 43 caracteres
Este es mi primer intento de código de golf, así que estoy bastante seguro de que un profesional de Perl podría jugarlo.
fuente
Haskell 66 personajes
fuente
PHP
6458Se cambió $ _GET ['n'] a $ argv [1] para la entrada de línea de comando.
fuente
Scala 59
fuente
readInt
por un número concreto, en línea.PHP,
595553 caracteresUso
Editar: gracias Thomas
fuente
echo "$i\n"
para obtenerecho"$i\n"
. Eso te ahorrará algunos caracteres. Además, si quieres ser descarado, puedes cambiar\n
por `` y guardar un personaje.C, 98 caracteres
fuente
k (23 caracteres)
fuente
Mathematica 61
fuente
Befunge, 97 (tamaño de cuadrícula 37x4 = 148)
Tener una mejor respuesta Befunge a esta pregunta. Este es Befunge-93 específicamente; Probablemente podría hacerlo aún más compacto con Befunge-98. Lo incluiré en una edición futura.
Como no puede operar con cadenas en Befunge, lo mejor que pude hacer fue calcular el reverso de dígitos de cada número (que me sorprende poder manejar sin
p
yg
) y compararlo con el número original. El reverso de dígitos ocupa la mayor parte del código (básicamente las líneas tercera y cuarta completas).Tenga en cuenta que el programa, tal como está ahora, imprime los números hacia atrás desde la entrada hasta 0. Si esto es un gran problema, avíseme. (El desafío solo dice enumerarlos, no específicamente en orden creciente).
fuente
\n
solas, por lo que tiene 94 bytes de longitud. No creo que su "tamaño de cuadrícula" tenga ninguna relevancia particular.05AB1E , 5 bytes (no competitivos)
El lenguaje es posterior al desafío y, por lo tanto, no es competitivo . Código:
Explicación:
Utiliza la codificación CP-1252 . Pruébalo en línea! .
fuente
LʒÂQ
es 4, que no compiten todavía, aunque ..Brachylog (2), pregunta de fechas posteriores al idioma:
Con el formato de E / S indicado en la pregunta, 8 bytes
Pruébalo en línea!
Con reglas modernas de E / S PPCG, 4 bytes
Pruébalo en línea!
Esta es una función que genera todas las salidas, no un programa completo como el ejemplo anterior, y por lo tanto no cumple con la especificación tal como está escrita, pero pensé que mostraría cómo se vería el programa si la pregunta hubiera sido escrita a los estándares modernos de E / S (que permiten el uso de funciones y salida a través de generadores).
Explicación
Para la versión completa del programa, creamos una variable temporal
A
para contener la salida, etiquetarla explícitamente (esto se hace implícitamente para el predicado principal de un programa) y usar laẉ⊥
técnica bien conocida para enviar los elementos de un generador a la salida estándar.fuente
Pitón
fuente
Groovy, 83
fuente
Q (34 caracteres)
Pase n en lugar de n + 1 como argumento para esta solución Q.
fuente
Q, 32
fuente
Q (33)
Probablemente una forma más ordenada de hacer esto, pero de todos modos, muestra el uso (ingresas n + 1 para llegar a n):
La sugerencia de tmartin lo reduce a 29:
Mismo uso.
fuente
Python, 106 caracteres
uso:
fuente
C # (
217214191 caracteres)Versión de golf:
Legible:
Esto imprime palíndromos en orden descendente haciendo uso del operador n -> 0. (como n va a 0).
* La versión editada reemplaza do ... while con while, guardando 3 caracteres, pero ahora debe ingresar con n + 1.
* editado: encontró una mejor manera de invertir la cadena sin convertirla en una matriz:
Legible:
fuente
PHP 53
¿Puede 53 ser más bajo? Cuatro opciones diferentes:
Si quieres ponerte funky ...
PHP 47
Tienes que ignorar el texto de error. Sin embargo, los números de palíndromo todavía se envían a la línea de comando.
fuente
Pyth, 11
Ejemplo:
fuente