Exiba números de cem a cem (em ordem crescente), mas o número 2 não deve aparecer em nenhum lugar da sequência. Então, por exemplo, os números dois ( 2
) ou vinte e três (23
) não devem estar na sequência.
Aqui está um exemplo de saída, com novas linhas separando os 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
fonte
fonte
[code-golf]
. Aqui está uma lista de todas as tags de critério vencedor disponíveis para referência futura.Respostas:
05AB1E , 6 bytes
Experimente online!
Explicação
fonte
Táxi ,
239923912370178317731706 bytes-8 bytes para perceber que, em vez de deixar um determinado passageiro no Sunny Side Park para sempre, vale mais a pena jogá-lo fora da Riverview Bridge. Ah, que cidade adorável é essa.
-21 bytes por comentar que estupidamente deixei em.
-587 bytes, simplesmente mudando todo o caminho que eu fiz sobre isso (aparentemente, um caminho mais curto é por aritmética; a divisão de números inteiros [17, 27, 37, 47, ...] por 9 produz a sequência, mas você precisa pular o Você mesmo.)
-17 bytes para a conclusão de que qualquer string entre aspas sem espaço não precisa de aspas, afinal (obrigado Jo King!).
-67 bytes para perceber que as quebras de linha são opcionais.
Experimente online!
Este não está me vencendo nenhuma competição de código de golfe em breve, mas decidi experimentar o esolang Taxi.
O táxi é um esolang em que toda a programação é feita ao pegar e deixar passageiros em várias paradas na cidade fictícia de Townsburg. Obviamente, seu táxi às vezes fica sem combustível; portanto, você também precisa visitar postos de gasolina de vez em quando e pagar usando os créditos que recebe como tarifa (nesse caso, só preciso parar para abastecer - em Go More - uma vez por iteração de loop!).
Usei alguns truques que reduzem um pouco o tamanho do arquivo, como reformular instruções ,
east 1st left, 2nd right
comoe 1 l 2 r
remover a palavrathe
onde é opcional e usar a rota menos complicada para todos os meus destinos (não necessariamente o caminho mais curto).Eu odeio essa solução mais curta do que a que eu originalmente criei. Essa solução aqui em baixo é uma maneira mais geral de realizar a tarefa, que pode começar e terminar onde você quiser. Aqui está, na sua totalidade.
2245 bytes (muito mais geral)
Experimente online!
E se a mega-trapaça for permitida, essa será bem menor do que as duas últimas.
456 bytes (totalmente trapaça)
Experimente online!
fonte
Python 2 , 39 bytes
Experimente online!
Usa operações aritméticas apenas para gerar números sem 2's.
O valor que
k
segue a progressão aritmética17, 27, 37, 47, ...
, que quando dividida pelo piso por 9 fornece1,3,4,5,6,7,8,9,10,11,13,14,...
números que não terminam em 2. Para pular 20 a 29, as saídas são aumentadas em 10 além de um determinado limite.fonte
JavaScript (ES6), 43 bytes
Retorna a sequência como uma sequência separada por vírgula.
Experimente online!
Por que fazer dessa maneira?
Podemos iterar de1 a 100 e testar cada número com
/2/.test(n)
, o que é uma afirmação bastante concisa. Mas nesse cenário, teríamos que lidar com entradas vazias com algo como(/2/.test(n)?'':...)
, o que adiciona mais alguns bytes.Por exemplo, isso funcionaria para 45 bytes :
Ou isso funcionaria para 44 bytes , se uma vírgula inicial for aceitável:
Em suma (e até prova em contrário), é mais curto pular imediatamente todos os valores den que contêm um 2 .
Comentado
fonte
R , 19 bytes
Experimente online!
fonte
grep(2,1:100,inv=T)
para 19.v=F
também porque, obviamente, pensei comigo mesma: quero os valores e não os índices ... duh!^[^2]*$
que é, hum, não mais curto.Python 2 , 44 bytes
Experimente online!
fonte
Perl 6 , 22 bytes
Experimente online!
Provavelmente existe uma maneira melhor de fazer o bloco de código, mas não consegui encontrar um advérbio de regex para inverter a correspondência
fonte
PowerShell ,
2216 bytesExperimente online!
-6 bytes graças ao mazzy
Gera o intervalo
1
para e100
, em seguida, retira os objetos onde eles fazem-notmatch
o número2
. A execução de-notmatch
um array como esse funciona como um filtro no array. Cada item é deixado no pipeline e a saída está implícita.fonte
1..100-notmatch2
Haskell ,
483331 bytesObrigado @ JonathanFrech por quinze bytes salvos e @ xnor por mais dois! Perdi um grande golfe e não percebi que
main=print$
poderia ser omitido.Experimente online!
Facilmente estendido alterando o
100
. Especifica todos os números e mantém apenas aqueles sem a'2'
.fonte
main=print$
não é necessário. Você testou seu código? Eu não acho queelem'2'
é uma sintaxe válida. Por quemap
? Simplesmentefilter(not.elem '2'.show)[1..100]
faz o trabalho.notElem
paranot.elem
, mas ainda mais curto éall(/='2')
.Utilitários Bash + GNU, 16
Experimente online!
fonte
Japonês , 7 bytes
Experimente online!
fonte
Java 10, 67 bytes
Experimente online.
Explicação:
fonte
Retina ,
1917 bytesExperimente online! Editar: salvou 2 bytes graças a @ovs, embora a última linha agora inclua uma nova linha. Explicação:
Insira 100 caracteres.
Substitua cada caractere pelo número de caracteres até e incluindo esse caractere, além de uma nova linha.
Remova todas as entradas que contêm um
2
.fonte
.
$.>`¶
para o segundo estágio?L$
evitar uma nova linha líder, então não tinha percebido que poderia voltar, obrigado.Stax , 6 bytes
Execute e depure
Descompactado, não jogado e comentado, parece com isso.
Execute este
fonte
Wolfram Language (Mathematica) , 42 bytes
Experimente online!
A sequência aritmética 1, 19/9, 29/9, 39/9, ... cresce na velocidade certa de que, tomando o teto, pule todos os números que terminam em 2. Então, nos livramos de 20 a 29, fazendo
Drop
ping nos valores nos índices 18 a 26.fonte
Print
necessário é, mas quem realmente se importa, de qualquer maneira.\[LeftCeiling]
e\[RightCeiling]
realmente contam como um único byte :)Ceiling
comando real .C (GCC) ,
6255 bytes• 7 bytes graças a Jonathan Frech
f(n){for(n=0;++n-101;n/10-2&&n%10-2&&printf("%d,",n));}
Faz um loop de 1 a 100 e imprime o número apenas se 2 não estiver no local das unidades ou dezenas.
Experimente online!
fonte
Powershell, 19 bytes
Este script mostra valor nulo em vez de 'números com 2 dentro' e resolve completamente a tarefa 'número 2 não deve aparecer em nenhum lugar da sequência'.
Saída:
Powerhsell (saída não contém valores nulos), 24 bytes
fonte
sh + coreutils, 16 caracteres
Gera sequência de 1 a 100 (inclusive) e exclui todas as linhas que possuem '2' nelas.
fonte
Z80Golf ,
4948 bytesExperimente online!
Montagem:
Salvo um byte com o
repeat_loop
saltofonte
Python 3 ,
53 51 50 4946 bytesExperimente online!
Não é o idioma mais forte para esta tarefa, mas sou novo no golfe.
Obrigado aos comentaristas por suas dicas!
fonte
if
.[print(n)for n in range(1,101)if"2"not in str(n)]
trabalho.n=17;exec("print((n>177)*10+n//9);n+=10;"*81)
'2'in str(n)or print(n)
é mais curto que um guarda de compreensão.Tcl , 44 bytes
Experimente online!
Tcl , 47 bytes
Experimente online!
Tcl , 50 bytes
Experimente online!
fonte
time {if [string f 2 [incr i]]==-1 {puts $i}} 100
- Outgolf com falha!regexp
:![regexp 2 [incr i]]
bytes -3Kotlin , 32 bytes
Experimente online!
fonte
Bash , 31 bytes
Experimente online!
Obrigado ao Digital Trauma pelo loop curto.
fonte
echo $i
vez do printf? Ou melhor aindaprintf %d\\n {1..100}|grep -v 2
?echo {1..100}|tr ' ' \\n|grep -v 2
sed /2/d
vez degrep -v 2
.ORK , 1092 bytes
Experimente online!
O bjeta R K ool. Saída é uma lista de números delimitada por espaço.
Isso se traduz (aproximadamente) no seguinte pseudocódigo:
Como você pode ver, tudo é feito usando objetos, incluindo funções básicas de matemática e E / S (por meio das classes matemáticas e de escriba incorporadas). Somente funções inteiras podem fazer um loop, o que explica a necessidade de um objeto com duas funções para fazer o trabalho.
fonte
MathGolf ,
76 bytesExperimente online!
Explicação
fonte
C (clang) , 56 bytes
Experimente online!
fonte
PHP 7.1, 40 bytes
imprime números separados por sublinhados. Corra com
-nr
ou experimente online .fonte
preg_filter()
baseado é interessante. (Eu nunca usei essa função 🤫.) Aquela seria mais curto compreg_grep()
:<?=join(_,preg_grep("/2/",range(1,100),1));
.Vermelho , 44 bytes
Experimente online!
Usa em
unless
vez deif not
, porque porque não? :)fonte
brainfuck , 176 bytes
Experimente online!
Shorter é definitivamente possível. Isso gera os números
1,3,4,5,6,7,8,9
e0,1,3,4,5,6,7,8,9
. Primeiro, gera cada número na primeira lista, depois gera todas as combinações da primeira e da segunda lista e, finalmente, imprime apenas100
.Explicação:
fonte
SimpleTemplate , 51 bytes
Este foi um desafio divertido! E é um desafio em que meu idioma pode se sair bem.
Percorre todos os valores de 1 a 100, produzindo os que não possuem 2, separados por uma nova linha.
Você pode experimentá-lo http://sandbox.onlinephpfunctions.com/code/2c97a2b6954c29844f1079938da771d51e2e0d99
Ungolfed:
O
{@/}
é usado para fechar o{@for ...}
e{@if ...}
, mas é opcional.Ao compilar para PHP, ele adiciona o fechamento necessário.
Se você estiver curioso, o código golfed resulta neste código PHP:
Onde
$FN['array_flat']
é definido fora deste código.fonte