TAREFA
imprima números inteiros n, onde 12 <= n <= 123456789
e todos os pares de dígitos consecutivos em n têm a mesma diferença positiva entre eles (por exemplo, 2468, mas não 2469).
SEM ENTRADA.
Resultado:
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
Regras
- Aplicam-se brechas padrão.
- sem entrada
o código mais curto vence.
Créditos anarquia golfe
Respostas:
Geléia ,
1211 bytesExperimente online!
Como funciona
fonte
ìà Find fastest route between two points using Dykstra's Algorithm
Python 2 , 81 bytes
Experimente online!
Minha solução do anarchy golf. A idéia é iterar sobre todos os triplos possíveis de comprimento, valor inicial e etapa, o que fornece resultados classificados. O triplo é codificado como um valor
r
de72
a647
, e os componentes são extraídos comok/72
,k/8%9
ek%8
. Iniciark
alto o suficiente evita a saída de números de um dígito.O xsot salvou dois bytes disso, substituindo o
range
por uma sequência de dígitos codificada'123456789'
.Isso foi escrito sob a restrição de um limite de tempo de execução de dois segundos. Uma estratégia mais lenta que filtre números em vez de gerá-los pode ser mais curta.
fonte
1
para123456789
, forçando as respostas a encontrar uma maneira inteligente de gerar os números certos na ordem certa (classificada).C,
166152 bytes6 bytes salvos graças a @KevinCruijssen!
8 bytes salvos graças a @JonathanFrech!
Experimente online
A versão totalmente formatada do código acima pode ser vista abaixo.
fonte
while(i<123456789)
estar dewhile(i<=123456789)
acordo com o intervalo de desafios? Além disso, você pode jogar golfe 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
pode ser jogado para o golfe!l
, poisl
nunca atinge um valor negativo.i<1e9
. E!l
quando issol
sempre>=0
soa razoável para o palpite de IC (eu nunca programei em C).Gelatina ,
14, 13 bytesExperimente online!
Um byte salvo graças ao @MrXcoder!
Isso é extremamente ineficiente, portanto o tempo limite será excedido no TIO, mas, se alguma vez terminar, produzirá a saída correta. Você pode experimentá-lo com números menores aqui: Experimente on-line!
Explicação:
fonte
$
do final do seu link auxiliar.DIµ>0ȦȧE¶Ç77#
05AB1E , 23 bytes
Experimente online!
Substitua
•7=›ζ•
por 7000 para finalizar no TIO ou apenas pressione o botão "Terminar" antes que o tempo limite se esgote, resultando nos números impressos até esse ponto.fonte
žh
'0123456789'
,1357
por exemplo, também é um número válido que você precisa exibir.•7=›ζ•
Mathematica, 79 bytes
Experimente online! com um número mais baixo porque é muito lento
aqui está outra abordagem que constrói todos os números em 1 segundo
Mathematica, 123 bytes
Experimente online! todos os números em um segundo
fonte
Casca ,
1413 bytesImprime números separados por nova linha em STDOUT. Experimente online!
-1 byte devido à inspiração do H.PWiz.
Explicação
fonte
Wolfram Language (Mathematica) , 76 bytes
Experimente online!
fonte
APL (Dyalog) ,
3728 bytesExperimente online! (com alcance menor, devido ao tempo limite)
Quão?
x←11+⍳123456789
-11, 12... 1e9
emx
¨
- para cada⍎¨⍕⍵
- divida em dígitos2-/
- obtenha lista de diferenças∪
- obtenha elementos únicos1=≢
- comprimento == 1?x/⍨
- use isso como uma máscara no intervalo criado⍪
- e columnifyfonte
Casca , 14 bytes
Experimente online!
fonte
≠
. : PI tinha esquecido ele funciona para personagens tambémLote,
210200 bytesNenhuma otimização, muito lenta - leva cerca de 25 segundos até 12345, portanto, para a saída completa, você terá que esperar cerca de 3 dias.
fonte
Java 8,
169168145 bytesPorto da resposta @Jacobinski C (depois de jogar um pouco).
-23 bytes graças a @Nevay .
Explicação:
Experimente aqui. (É um pouco lento demais no final, portanto, não imprime o número final no TIO. No entanto, imprime o número final localmente em cerca de 20 segundos.)
fonte
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
alguma forma e adicioná-lo à verificação de loop for, mas isso eu não teria inventado comigo mesmo. ;) Obrigado!05AB1E , 14 bytes
Experimente online!
fonte
12žhŸʒS¥D0›PsË&
, não consigo executá-lo localmente. Você pode fazer isso realmente ser executado?Ÿ
, ele funcionará bemPython 2 ,
1039795 bytes-2 bytes graças a @JonathanFrech
Experimente online!
fonte
`n`[1:]
.Python 2 ,
7675 bytesDemora cerca de 3 minutos localmente.
Experimente online! (modificado para imprimir todos os números, exceto o último)
fonte
JavaScript (Firefox 30-57), 105 bytes
Loops em comprimentos de 2 a 10 (x é o índice do último caractere e, portanto, 1 a menos que o comprimento), iniciando os dígitos de 1 a 9 e passando de 1 a 9, depois filtra o dígito final com menos de 10 e, se gera o resultado filtrando dígitos da sequência de dígitos.
fonte
Uncaught SyntaxError: Unexpected token for
Pitão , 21 bytes
Abordagem inteligente do Porto de Dennis .
Experimente aqui!
Pitão , 23 bytes
Isso atinge o tempo limite no intérprete online, mas funciona se houver tempo e memória suficientes.
Experimente online com um número menor .
fonte
MATL ,
1716 bytesExperimente online! com
1e9
substituído pelo1e3
modo que ele não expirar no compilador online.fonte
JavaScript (ES6), 121 bytes
Não é tão curta quanto a resposta de Neil , mas achei que ainda valia a pena postar.
Trabalha construindo um conjunto de potências de
'123456789'
onde todas as entradas não correspondentes são truncadas e prefixadas0
, classificando os resultados em ordem numérica e mantendo apenas os 77 relevantes.Demo
Mostrar snippet de código
fonte
C (gcc) , 106 bytes
Experimente online!
A versão não destruída (prettificada):
fonte
JavaScript (ES6),
109104 bytesFunciona gerando todos os números possíveis: passa por cada incremento de 8 a 1 (variável
i
), passa por cada dígito inicial de 8 a 1 (variávelj
), passa por cada dígito entrej
e10-i
(variávelk
) e gera uma stringt
anexandok
à correntet
. Em cada etapat
é adicionado à matriz de saída.Experimente online!
fonte
Wolfram Language (Mathematica) , 71 bytes
Experimente online!
Rápido como um relâmpago devido à construção, em vez de selecionar a saída.
fonte
Java (OpenJDK 8) ,
228174170163 bytesExperimente online!
fonte
JavaScript (ES6), 145 bytes
Uma abordagem direta com pouca mágica.
A execução do snippet consumirá muita memória ...
fonte
PHP,
8584 bytesexperimente online .
a classificação custa 17 bytes. Esta versão imprime os resultados ordenados de maneira diferente:
fonte