TAREA
print enteros n, where 12 <= n <= 123456789
y todos los pares de dígitos consecutivos en n tienen la misma diferencia positiva entre ellos (por ejemplo, 2468 pero no 2469).
SIN ENTRADA.
Salida:
12
13
14
15
16
17
18
19
23
24
25
26
27
28
29
34
35
36
37
38
39
45
46
47
48
49
56
57
58
59
67
68
69
78
79
89
123
135
147
159
234
246
258
345
357
369
456
468
567
579
678
789
1234
1357
2345
2468
3456
3579
4567
5678
6789
12345
13579
23456
34567
45678
56789
123456
234567
345678
456789
1234567
2345678
3456789
12345678
23456789
123456789
Reglas
- Se aplican lagunas estándar.
- sin entrada
el código más corto gana.
Créditos anarquía golf
Respuestas:
Jalea ,
1211 bytesPruébalo en línea!
Cómo funciona
fuente
ìà Find fastest route between two points using Dykstra's Algorithm
Python 2 , 81 bytes
Pruébalo en línea!
Mi solución desde la anarquía del golf. La idea es iterar sobre todos los triples posibles de longitud, valor inicial y paso, lo que da resultados ordenados. La triple se codifica como un valor
r
de72
a647
, y los componentes se extraen comok/72
,k/8%9
, yk%8
. Comenzark
lo suficientemente alto evita que se generen números de un solo dígito.xsot ahorró dos bytes de esto reemplazando el
range
con una cadena de dígitos codificada'123456789'
.Esto fue escrito bajo la restricción de un límite de tiempo de ejecución de dos segundos. Una estrategia más lenta que filtra los números en lugar de generarlos puede ser más corta.
fuente
1
a123456789
, en lugar de forzar a las respuestas a encontrar una forma inteligente de generar los números correctos en el orden correcto (ordenado).C,
166152bytes¡6 bytes guardados gracias a @KevinCruijssen!
¡8 bytes guardados gracias a @JonathanFrech!
Pruébalo en línea
La versión completamente formateada del código anterior se puede ver a continuación.
fuente
while(i<123456789)
ser dewhile(i<=123456789)
acuerdo con el rango de desafío? Además, puede jugar golf por 6 bytes:p,l,d,i=11;main(){for(char s[10];i<=123456789;){sprintf(s,"%d",++i);p=0;for(l=strlen(s);--l>0;){d=s[l]-s[l-1];if(p<1)p=d;if(p^d|d<1)break;p=d;}if(l<1)puts(s);}}
i<1e9
.l<1
se puede jugar al golf!l
, ya quel
nunca alcanza un valor negativo.i<1e9
. Y!l
cuandol
siempre>=0
suena razonable para adivinar CI (nunca he programado en C yo mismo).Jalea ,
14, 13 bytesPruébalo en línea!
¡Un byte guardado gracias a @MrXcoder!
Esto es extremadamente ineficiente, por lo que caducará en TIO, pero si alguna vez termina, producirá la salida correcta. Puede probarlo con números más pequeños aquí: ¡ Pruébelo en línea!
Explicación:
fuente
$
al final de su enlace de ayuda.DIµ>0ȦȧE¶Ç77#
05AB1E , 23 bytes
Pruébalo en línea!
Reemplace
•7=›ζ•
con 7000 para que termine en TIO, o simplemente presione el botón "terminar" antes de que se agote el tiempo, lo que da como resultado los números impresos hasta ese punto.fuente
žh
'0123456789'
,1357
por ejemplo, también es un número válido que debe generar.•7=›ζ•
Mathematica, 79 bytes
Pruébalo en línea! con un número más bajo porque es muy lento
Aquí hay otro enfoque que construye todos los números en 1 segundo
Mathematica, 123 bytes
Pruébalo en línea! todos los números en un segundo
fuente
Casco ,
1413 bytesImprime números separados por nueva línea en STDOUT. Pruébalo en línea!
-1 byte debido a la inspiración de H.PWiz.
Explicación
fuente
Wolfram Language (Mathematica) , 76 bytes
Pruébalo en línea!
fuente
APL (Dyalog) ,
3728 bytesPruébalo en línea! (con un rango más corto, debido al tiempo de espera)
¿Cómo?
x←11+⍳123456789
-11, 12... 1e9
enx
¨
- para cada⍎¨⍕⍵
- romper en dígitos2-/
- obtener lista de diferencias∪
- obtener elementos únicos1=≢
- longitud == 1?x/⍨
- use esto como una máscara en el rango creado⍪
- y columnifyfuente
Casco , 14 bytes
Pruébalo en línea!
fuente
≠
. : PI había olvidado que también funciona para los personajesLote,
210200 bytesSin optimizaciones, muy lento: toma aproximadamente 25 segundos hasta 12345, por lo que para la salida completa tendría que esperar unos 3 días.
fuente
Java 8,
169168145 bytesRespuesta del puerto de @Jacobinski C (después de jugar un poco al golf).
-23 bytes gracias a @Nevay .
Explicación:
Pruébalo aquí. (Es un poco demasiado lento cerca del final, por lo que no imprime el número final en TIO. Sin embargo, imprime el número final localmente en unos 20 segundos).
fuente
v->{byte[]a;for(int i=9,p,l;++i<1e9;System.out.print(l<1?i+"\n":""))for(a=(i+"").getBytes(),p=0,l=a.length;--l>0&&p*(p^(p=a[l]-a[l-1]))<1&p>0;);}
break
alguna manera y agregarlo a la verificación for-loop, pero esto no se me habría ocurrido. ;) ¡Gracias!05AB1E , 14 bytes
Pruébalo en línea!
fuente
12žhŸʒS¥D0›PsË&
, no puedo hacer que se ejecute localmente. ¿Puedes hacer que esto se ejecute realmente?Ÿ
, funciona bienPitón 2 ,
1039795 bytes-2 bytes gracias a @JonathanFrech
Pruébalo en línea!
fuente
`n`[1:]
.Python 2 ,
7675 bytesToma alrededor de 3 minutos localmente.
Pruébalo en línea! (modificado para imprimir todos los números excepto el último)
fuente
JavaScript (Firefox 30-57), 105 bytes
Recorre longitudes de 2 a 10 (x es el índice del último carácter y, por lo tanto, 1 menos que la longitud), comienza los dígitos del 1 al 9 y pasa del 1 al 9, luego los filtros en el dígito final son menores que 10 y si genera el resultado filtrando dígitos de la cadena de dígitos.
fuente
Uncaught SyntaxError: Unexpected token for
Pyth , 21 bytes
Enfoque inteligente del puerto de Dennis .
Pruébalo aquí!
Pyth , 23 bytes
Esto agota el tiempo en el intérprete en línea, pero funciona si se le da suficiente tiempo y memoria.
Pruébelo en línea con un número menor .
fuente
MATL ,
1716 bytesPruébalo en línea! con
1e9
reemplazado por1e3
para que no se agote el tiempo en el compilador en línea.fuente
JavaScript (ES6), 121 bytes
No tan corto como la respuesta de Neil , pero pensé que aún valía la pena publicarlo.
Funciona mediante la construcción de un conjunto de poder
'123456789'
donde todas las entradas no coincidentes se truncan y se prefijan0
, ordenando los resultados en orden numérico y manteniendo solo las 77 relevantes.Manifestación
Mostrar fragmento de código
fuente
C (gcc) , 106 bytes
Pruébalo en línea!
La versión sin golf (prettified):
fuente
JavaScript (ES6),
109bytesFunciona generando todos los números posibles: recorre cada incremento de 8 a 1 (variable
i
), recorre cada dígito inicial de 8 a 1 (variablej
), recorre cada dígito entrej
y10-i
(variablek
) y genera una cadenat
agregandok
al actualt
. En cada pasot
se agrega a la matriz de salida.Pruébalo en línea!
fuente
Wolfram Language (Mathematica) , 71 bytes
Pruébalo en línea!
Rápido como un rayo debido a la construcción en lugar de seleccionar la salida.
fuente
(Java OpenJDK 8) ,
228174170163 bytesPruébalo en línea!
fuente
JavaScript (ES6), 145 bytes
Un enfoque directo con poca magia.
Ejecutar el fragmento consumirá mucha memoria ...
fuente
PHP,
8584 bytespruébalo en línea .
el costo de clasificación es de 17 bytes. Esta versión imprime los resultados ordenados de manera diferente:
fuente