Muestra los números del uno al cien (en orden creciente), pero el número 2 no debería aparecer en ninguna parte de la secuencia. Entonces, por ejemplo, los números dos ( 2
) o veintitrés ( 23
) no deberían estar en la secuencia.
Aquí hay un ejemplo de salida, con líneas nuevas que separan los números:
1
3
4
5
6
7
8
9
10
11
13
14
15
16
17
18
19
30
31
33
34
35
36
37
38
39
40
41
43
44
45
46
47
48
49
50
51
53
54
55
56
57
58
59
60
61
63
64
65
66
67
68
69
70
71
73
74
75
76
77
78
79
80
81
83
84
85
86
87
88
89
90
91
93
94
95
96
97
98
99
100
code-golf
sequence
kolmogorov-complexity
Monolica
fuente
fuente
[code-golf]
. Aquí hay una lista de todas las etiquetas de criterios ganadores disponibles para referencia futura.Respuestas:
05AB1E , 6 bytes
Pruébalo en línea!
Explicación
fuente
Taxi ,
239923912370178317731706 bytes-8 bytes por darse cuenta de que, en lugar de dejar a cierto pasajero en Sunny Side Park para siempre, vale la pena echarlos del puente Riverview. Ah, qué pueblo tan encantador es este.
-21 bytes para sacar un comentario que estúpidamente dejé.
-587 bytes simplemente cambiando toda la forma en que hice esto (al parecer, una forma más corta es por aritmética; la división entera [17, 27, 37, 47, ...] entre 9 produce la secuencia, pero debes saltarte el 20's tu mismo.)
-17 bytes para darse cuenta de que cualquier cadena entre comillas sin espacio no necesita comillas después de todo (¡gracias Jo King!).
-67 bytes para darse cuenta de que los saltos de línea son opcionales.
Pruébalo en línea!
Este no me está ganando ninguna competencia de código de golf en el corto plazo, pero decidí probar el taxi esolang.
Taxi es un esolang en el que toda la programación se realiza recogiendo y dejando pasajeros en varias paradas en la ciudad ficticia de Townsburg. Por supuesto, su taxi a veces se quedará sin gasolina, por lo que también debe visitar las estaciones de servicio de vez en cuando y pagar con los créditos que recibe como tarifa (en este caso, solo necesito parar por gasolina, en Go More) una vez por iteración de bucle!).
Utilicé algunos trucos que reducen un poco el tamaño del archivo, como reformular instrucciones
east 1st left, 2nd right
comoe 1 l 2 r
, eliminar la palabrathe
donde es opcional y usar la ruta menos complicada hacia todos mis destinos (no necesariamente la ruta más corta).Odio esta solución más corta más que la que originalmente se me ocurrió. Esta solución aquí abajo es una forma más general de lograr la tarea, que podría comenzar y terminar en cualquier lugar que desee. Aquí está en su totalidad.
2245 bytes (mucho más general)
Pruébalo en línea!
Y si se permite el mega engaño, este es mucho más corto que cualquiera de los dos últimos.
456 bytes (totalmente trampa)
Pruébalo en línea!
fuente
Python 2 , 39 bytes
Pruébalo en línea!
Utiliza operaciones aritméticas solo para generar números sin 2.
El valor
k
sigue la progresión aritmética17, 27, 37, 47, ...
, que cuando se divide en el piso entre 9 da1,3,4,5,6,7,8,9,10,11,13,14,...
los números de conteo que no terminan en 2. Para saltear 20 a 29, las salidas se incrementan en 10 más allá de cierto umbral.fuente
JavaScript (ES6), 43 bytes
Devuelve la secuencia como una cadena separada por comas.
Pruébalo en línea!
¿Por qué hacerlo de esta manera?
Podríamos iterar de1 a 100 y probar cada número con
/2/.test(n)
, que es una declaración bastante concisa. Pero en este escenario, tendríamos que manejar entradas vacías con algo así(/2/.test(n)?'':...)
, que agrega un par de bytes más.Por ejemplo, esto funcionaría para 45 bytes :
O esto funcionaría para 44 bytes , si una coma inicial es aceptable:
Con todo (y hasta que se demuestre lo contrario), resulta más corto omitir de inmediato todos los valores den que contienen un 2 .
Comentado
fuente
R , 19 bytes
Pruébalo en línea!
fuente
grep(2,1:100,inv=T)
para 19.v=F
también porque, obviamente, pensé para mí mismo, quiero los valores y no los índices ... ¡duh!^[^2]*$
cuál es, um, no más corto.Python 2 , 44 bytes
Pruébalo en línea!
fuente
Perl 6 , 22 bytes
Pruébalo en línea!
Probablemente haya una mejor manera de hacer el bloque de código, pero no pude encontrar un adverbio regex para invertir la coincidencia
fuente
PowerShell ,
2216 bytesPruébalo en línea!
-6 bytes gracias a mazzy
Genera el rango
1
a100
, luego extrae los objetos donde hacen-notmatch
el número2
. Ejecutar-notmatch
contra una matriz como esta actúa como un filtro en la matriz. Cada elemento se deja en la tubería y la salida es implícita.fuente
1..100-notmatch2
Haskell ,
483331 bytesThanks @JonathanFrech for fifteen bytes saved, and @xnor for another two! I missed a big golf and didn't realize
main=print$
can be omitted.Try it online!
Easily extended by changing the
100
. Stringifies all the numbers and keeps only those without a'2'
.fuente
main=print$
is not necessary. Have you tested your code? I do not think thatelem'2'
is valid syntax. Whymap
? Simplyfilter(not.elem '2'.show)[1..100]
does the job.notElem
fornot.elem
, but even shorter isall(/='2')
.Bash + GNU utilities, 16
Try it online!
fuente
Japt, 7 bytes
Try it online!
fuente
Java 10, 67 bytes
Try it online.
Explanation:
fuente
Retina,
1917 bytesTry it online! Edit: Saved 2 bytes thanks to @ovs, although the last line now includes a newline. Explanation:
Insert 100 characters.
Replace each character with the number of characters up to and including that character, plus a newline.
Remove all entries that contain a
2
.fuente
.
$.>`¶
work for the second stage?L$
to avoid a leading newline, so I hadn't realised I could switch back, thanks.Stax, 6 bytes
Run and debug it
Unpacked, ungolfed, and commented, it looks like this.
Run this one
fuente
Wolfram Language (Mathematica), 42 bytes
Try it online!
The arithmetic sequence 1, 19/9, 29/9, 39/9, ... grows at just the right rate that taking the ceiling skips all the numbers ending in 2. Then we get rid of 20 through 29 by
Drop
ping the values at indices 18 through 26.fuente
Print
is necessary, but who really cares, anyway.\[LeftCeiling]
y\[RightCeiling]
really count as a single byte :)Ceiling
command.C (GCC),
6255 Bytes• 7 Bytes thanks to Jonathan Frech
f(n){for(n=0;++n-101;n/10-2&&n%10-2&&printf("%d,",n));}
Loops from 1 to 100 and prints the number only if 2 is not in the ones or tens place.
Try it online!
fuente
Powershell, 19 bytes
Este script muestra un valor nulo en su lugar 'números con 2 adentro' y resuelve completamente la tarea 'el número 2 no debería aparecer en ninguna parte de la secuencia'.
Salida:
Powerhsell (la salida no contiene valores nulos), 24 bytes
fuente
sh + coreutils, 16 caracteres
Genera secuencia de 1 a 100 (inclusive) y elimina cualquier línea que tenga '2' en ellas.
fuente
Z80Golf ,
4948 bytesPruébalo en línea!
Montaje:
Guardado un byte con el
repeat_loop
saltofuente
Python 3 ,
53 51 50 4946 bytesPruébalo en línea!
No es el lenguaje más fuerte para esta tarea, pero soy nuevo en el golf.
Gracias a los comentaristas por sus consejos!
fuente
if
.[print(n)for n in range(1,101)if"2"not in str(n)]
trabajos.n=17;exec("print((n>177)*10+n//9);n+=10;"*81)
'2'in str(n)or print(n)
is shorter than a comprehension guard.Tcl, 44 bytes
Try it online!
Tcl, 47 bytes
Try it online!
Tcl, 50 bytes
Try it online!
fuente
time {if [string f 2 [incr i]]==-1 {puts $i}} 100
— Failed outgolf!regexp
:![regexp 2 [incr i]]
for -3 bytesKotlin, 32 bytes
Try it online!
fuente
Bash, 31 bytes
Try it online!
Thanks to Digital Trauma for short loop.
fuente
echo $i
instead of the printf? Or even betterprintf %d\\n {1..100}|grep -v 2
?echo {1..100}|tr ' ' \\n|grep -v 2
sed /2/d
lugar degrep -v 2
.ORK , 1092 bytes
Pruébalo en línea!
O objetos R K ool. La salida es una lista de números delimitada por espacios.
Esto se traduce (aproximadamente) al siguiente pseudocódigo:
Como puede ver, todo se hace utilizando objetos, incluidas las funciones básicas de matemática e IO (a través de las clases de matemático y escriba incorporadas). Solo las funciones completas pueden recorrer, lo que explica la necesidad de un objeto con dos funciones para hacer el trabajo.
fuente
MathGolf ,
76 bytesPruébalo en línea!
Explicación
fuente
C (clang) , 56 bytes
Pruébalo en línea!
fuente
PHP 7.1, 40 bytes
imprime números separados por guiones bajos. Ejecutar
-nr
o probarlo en línea .fuente
preg_filter()
based one is interesting. (I never used that function. 🤫) That one would be shorter withpreg_grep()
:<?=join(_,preg_grep("/2/",range(1,100),1));
.Red, 44 bytes
Try it online!
Uses
unless
instead ofif not
, because why not? :)fuente
brainfuck, 176 bytes
Try it online!
Shorter is definitely possible. This generates the numbers
1,3,4,5,6,7,8,9
and0,1,3,4,5,6,7,8,9
. First it outputs each number in the first list, then it outputs every combination of the first and second list, then finally prints just100
.Explanation:
fuente
SimpleTemplate, 51 bytes
This was a fun challenge! And it is a challenge where my language can do well.
Cycles through all values from 1 to 100, outputting the ones that don't have 2, separated by a newline.
You can try it on http://sandbox.onlinephpfunctions.com/code/2c97a2b6954c29844f1079938da771d51e2e0d99
Ungolfed:
The
{@/}
is used to close the{@for ...}
and{@if ...}
, but is optional.When compiling to PHP, it adds the needed closing.
If you're curious, the golfed code results in this PHP code:
Where
$FN['array_flat']
is defined outside of this code.fuente