Si se proporciona un dígito entre 0 y 9 (inclusive), su función / subrutina debe imprimir todos los números entre -100 y 100 (inclusive) que contengan el dígito dado.
Por ejemplo:
Input: 9
Output: -99 -98 -97 -96 -95 -94 -93 -92 -91 -90 -89 -79 -69 -59 -49 -39 -29 -19 -9 9 19 29 39 49 59 69 79 89 90 91 92 93 94 95 96 97 98 99
Reglas:
- No puede usar cadenas (de cualquier forma que estén representadas en el idioma elegido) o matrices de caracteres. (Excepto para imprimir la respuesta en la consola).
- No puedes usar matrices.
Tanteo:
Puntuación = longitud de la subrutina / función (no se contará el espacio en blanco)
La respuesta con la puntuación más baja gana.
Los espacios en blanco NO serán contados. ¡Formatee su código correctamente!
Algunas respuestas están utilizando expresiones regulares, que pueden violar la regla de sin cadenas, como señalan algunos miembros. Estas respuestas no serán aceptadas.
Por favor, pruebe su código 0
antes de publicar.
Respuestas:
Espacio en blanco, 834 caracteres (0 si resta espacios en blanco)
Usé este intérprete para probarlo.
Esto me llevó unas 4 horas de trabajo duro y una depuración horrible para crear. Pero ya está hecho!
EDITAR : Texto seleccionable provisto con trucos HTML. Si lo copia y pega desde aquí en otro lugar, verifique si obtuvo exactamente
[space][tab][linefeed][linefeed][linefeed]
al final con 100 o 101 líneas (dependiendo de si su editor cuenta o no una nueva línea si la última termina con un salto de línea).En el caso de que no pueda usarlo de esta manera, considerando el espacio como
S
, el salto de línea comoL
y la pestaña comoT
, y separando las líneas después delL
's, aquí está:fuente
Bash + utils - 20
O 21 bytes si en un script
Para ejecutar el script:
fuente
grep
no esbash
osh
. ¡Es otra utilidad!JavaScript 133-1 = 132
¿Seguramente no podría haber nada malo con esta versión ahora ...?
fuente
for(i=-100,r=prompt();101>i;i++)(i+'').match(r)&&console.log(i)
.alert(RegExp(9).test(99))
que se basa solo en números, también regresatrue
debido al sistema de tipeo basado en JavaScript. Las funciones funcionan con los números como si fueran cadenas pero siguen siendo números ... Si cambia el código para leerlor=RegExp(x=+prompt());for(i=-100;101>i;i++)r.test(i)&&console.log(i);console.log(typeof(x));console.log(typeof(i))
y ejecutarlo, el tipo final de respuesta se mostraráx
yi
como números ... Ergo, no estoy usando cadenas ...GolfScript [24 bytes]
Descripción:
DEMO: http://golfscript.apphb.com/?c=MwoKYDp4OzIwMSx7MTAwLX0le2B4Py0xPn0sYA%3D%3D
fuente
Ruby: 92 caracteres
Versión legible:
Ejecución de muestra:
Prueba de funcionamiento:
fuente
0
prueba.K - 45 char
No gana ningún premio, pero K golf está subrepresentado. K no se pone más bonito con el espacio adecuado, así que lo dejaré como está, porque K se pone muy exigente sobre qué espacio en blanco es importante y cuál no.
Explicado:
a:100-!201
- Haga una lista de 0 a 200 inclusive, luego reste de 100. Ahora tenemos los números de -100 a 100 inclusive, pero al revés de las especificaciones de la pregunta. Siempre podemos arreglar eso más tarde, así que por ahora solo asignaremos esto aa
._ _abs
- Tome el piso del valor absoluto de estos números, porque, por alguna razón, K piensa que_abs
debería dar resultados en coma flotante. Afortunadamente, colocarlos en el suelo los convierte de nuevo en enteros.10_vs'
- Expanda cada'
entero ( ) como un número base 10 (_vs
significa "vector de escalar"). Tenga en cuenta que no tuvimos que usar el operador Each'
en las funciones anteriores porque operan en átomos.@[...;100;0,]
- Modifique el elemento en nuestra lista en el índice 100 (una lista vacía, que es el resultado de expandir 0 en la base 10) por la función0,
, que antepone un cero al frente. Sin esta corrección, esta función fallará en la entrada 0.&x in'
- Ahora, devuelve los índices (&
) dondex
hay un dígito en (_in
) cada ('
) de las expansiones que construimos con tanto cuidado anteriormente.|a@
- Finalmente, use estos índices para indexara
e invertir la lista en el orden correcto.El uso es obvio, aunque la buena suerte es tener un intérprete de K. (Hay una implementación de código abierto en Github que puede compilar).
fuente
golpetazo
5549 caracteres:(sin contar espacios en blanco
&&
)Ejecutándolo diciendo:
produciría:
fuente
;
s en líneas nuevas y ahorrar 2 puntos.PHP 67 bytes:
Sí, hay una llamada 'strpos', ¡pero estoy usando solo números!
Aquí hay una versión 'no golfista':
Para que esto funcione, puede probarlo aquí: http://writecodeonline.com/php/
Solo recuerde agregar
$_GET[n]='<number>';
al comienzo del código.O, en una lámpara o servidor xampp, puede crear una página y luego acceder a ella en el navegador, con el parámetro
?n=<number>
después del nombre del archivo.fuente
Mathematica 28
Lo siento, no pude resistirme.
:)
Las instrucciones son: "Siempre que haya un dígito entre 0 y 9 (inclusive), su función / subrutina debe imprimir todos los números entre -100 y 100 (inclusive) que contengan el dígito dado".
Lo siguiente imprime todos esos números en orden.
Como un bono especial, imprime esos números en el mismo rango que no contienen el dígito dado. :)
fuente
Mi primer intento aquí, así que tal vez estoy haciendo algo mal, disculpe;)
Entonces, no estaba seguro de si tenía que agregar toda la clase o solo la lógica interna.
Java - 199 caracteres
Aquí una forma más legible:
Supongo que la idea básica no era tan mala, pero necesitaba demasiadas excepciones, para finalmente resolver todos los casos ...: /
fuente
0
:(intx
... ¿no debería serint x
:?C -
104107114 caracteres - 0 =104107114Sin golf:
fuente
0
contiene0
.R 87
93Aquí hay una mejora:
(Potencialmente) Más legible, con notas:
fuente
0
.0
. ¿Intentaste con esta versión más reciente? Estoy usando R 3.0.1.Prólogo: 75
fuente
test.pl
archivo, comencéswipl
, ingreséconsult('test')
y luego ingreséf(9)
. Pero solo regresófalse
.C respuesta en 98 caracteres
Esta es una de las cosas más sexys que he codificado
La versión anterior, con 104 caracteres que no son espacios en blanco:
"Funciona para mí" usando GCC y CLANG.
fuente
GNU coreutils (44)
donde
tr
se utiliza para convertir nuevas líneas en espacios, yecho
proporciona una nueva línea final.fuente
Javascript 116
fuente
J - 27 caracteres
Todo el espacio en blanco se puede quitar de forma segura, lo que significa 27 caracteres. Los números negativos en la salida tendrán
_
un signo negativo: esta es la forma en que J escribe sus números negativos.Explicado:
V & (i: 100)
- Bind (&
) el conjunto de números de -100 a 100 inclusive (i:100
) como el argumento correcto del verbo principal (V
). El argumento único del verbo completo se canaliza hacia el lado izquierdo.(U"0 # ])
- Use el resultado del verboU
sobre cada número del argumento correcto ("0
) para seleccionar (#
) elementos del argumento correcto (]
).(e. 10 #.^:_1 |)
- Dado el dígito para probar como argumento izquierdo y el número para verificar como argumento derecho, expanda en la base 10 (10 #.^:_1
) el valor absoluto del número (|
) y verifique si el dígito es un elemento de esa expansión (e.
).Uso:
fuente
-
Negate / Minus. K le permite usar el signo negativo "naturalmente" en los números, y por cierto K salió un clusterfuck sintáctico arcano. Si realmente te molesta, trabaja en tu elección de;8!:1
,'4.0'8!:2
o'-'I.@:=&'_'}":
, costando 7, 11 y 16 caracteres respectivamente para hacer que el programa resultante sea una función en lugar de una expresión, según mi recuento.Groovy, 127
Sin cadenas (excepto para generar espacios entre los números), sin matrices de caracteres u otras matrices, sin expresiones regulares. Probado con 0. Salida:
-100-90-80-70-60-50-40-30-30-10 0 10 20 30 40 50 60 70 80 90100
fuente
Javascript - 108
No estoy seguro de si la respuesta de JavaScript existente se tendrá en cuenta porque usa expresiones regulares, así que creé una sin ella:
También se puede acortar a 101 si la variable x se coloca directamente, como:
Básicamente verifica si los valores absolutos de las operaciones div o mod son iguales al dígito (que también funciona para 100).
fuente
x=1
, esto no se imprime-100
o100
.1
funciona muy bien, pero ahora0
las impresiones1
,2
,3
... Siento ser un alborotador aquí.prompt()
devuelve una cadena, así que agregué * 1 y espero que ahora esté bien. Gracias por sus sugerenciasparseInt(j/10)
se puede reemplazar con el(0|j/10)
que es más corto y evita las cadenas implícitas. La conversión (inevitable) de cadena a númeroprompt()*1
no se puede acortar como+prompt()
. (O aún más corto, cambie la función para comenzarfor(x=+prompt(i=-100);...
.GW Basic: 107 caracteres excluyendo espacios en blanco
El uso de un solo dígito para los números de línea ayuda y eliminar el espacio en blanco significa que no es realmente necesario tener múltiples declaraciones en una línea más de una vez para mantener los números llegando a 10.
fuente
MARAVILLOSO, 71
Resultados en
fuente
Javascript 96
Usando bitwise o:
fuente
Haskell,
8675 (78 con espacios en blanco necesarios)Sin golf:
fuente
a 0=[-100....
ya d=[b|b<-....
usted puede deshacerse de laif then else
y ahorrar unos pocos bytes.Python - 172 caracteres
Para probar dentro de Python:
fuente
VBA 121
(sin espacios en blanco o
Sub
definición contada):fuente
0
?IIf(d = 0, IIf(d = n Mod 10, " " & n, "")
perl, 117 con caracteres de espacio en blanco no significativos eliminados
Creo que estabas buscando algo más como esto. Lee desde stdin, genera una línea por partido. Sin expresiones regulares, matrices (o conjuntos o hashes o cualquier otra cosa que sea una matriz debajo de las cubiertas) o cadenas, implícitas o de otro tipo, excepto las cadenas pasadas a imprimir:
p.ej:
fuente
F #
8792 - 7agregó 5 caracteres porque 0 no se manejó correctamente. (Se devolverían todos los valores de un dígito).
fuente
Esta es la primera vez que juego código golf. Esto se ve bastante interesante. No puedo ganar, pero intenté y quería mostrar lo que podía hacer.
Python: 104 (89 si puedo hacer la importación) - si los resultados deben imprimirse exactamente como se muestra en el ejemplo
Python: 71 - si la salida se puede hacer fuera de la función y la única restricción para la salida es que no se imprimen números violadores
fuente
JavaScript 125 char
Perdón por las varias ediciones que he tenido problemas para hacer esto desde mi teléfono :)
fuente
Dogelang, 42 caracteres que no son espacios en blanco
Igual que mi solución Python, recién convertida a dogelang .
fuente