A sequência de Sixers é um nome que pode ser atribuído à sequência A087409 . Eu aprendi sobre essa sequência em um vídeo do Numberphile e ela pode ser construída da seguinte maneira:
Primeiro, pegue os múltiplos de 6, escritos na base 10:
6, 12, 18, 24, 30, 36, ...
Em seguida, concatene os números em um fluxo de dígitos:
61218243036...
Por fim, reagrupe o fluxo em pares e interprete cada um como um número inteiro:
61, 21, 82, 43, 3, ...
À medida que agrupamos os números em pares, o número máximo na sequência será 99, e todos os números inteiros não negativos menores que 100 são representados na sequência. Esse desafio é encontrar o índice da primeira instância de um número na sequência de Sixers.
Entrada
Um número inteiro no intervalo [0-99]
. Você não precisa contabilizar números fora desse intervalo e sua solução pode ter algum comportamento se essa entrada for fornecida.
Resultado
O índice da primeira ocorrência do número de entrada na sequência de Sixers. Isso pode ser indexado em 0 ou 1; diga o que você está usando em sua resposta.
Regras
- O procedimento para gerar a sequência observada na introdução é apenas para fins ilustrativos. Você pode usar qualquer método que desejar, desde que os resultados sejam os mesmos.
- Você pode enviar programas ou funções completos.
- Quaisquer métodos sensíveis de entrada e saída são permitidos.
- As brechas padrão não são permitidas.
- Links para testar seu código online são recomendados!
- Isso é código-golfe , então a resposta mais curta em cada idioma vence!
Casos de teste
Aqui está uma lista de todas as entradas e saídas, no formato input, 0-indexed output, 1-indexed output
.
0 241 242
1 21 22
2 16 17
3 4 5
4 96 97
5 126 127
6 9 10
7 171 172
8 201 202
9 14 15
10 17 18
11 277 278
12 20 21
13 23 24
14 19 20
15 29 30
16 32 33
17 297 298
18 35 36
19 38 39
20 41 42
21 1 2
22 46 47
23 69 70
24 6 7
25 53 54
26 22 23
27 11 12
28 62 63
29 219 220
30 65 66
31 68 69
32 71 72
33 74 75
34 49 50
35 357 358
36 80 81
37 83 84
38 25 26
39 89 90
40 92 93
41 27 28
42 42 43
43 3 4
44 101 102
45 104 105
46 8 9
47 177 178
48 110 111
49 13 14
50 28 29
51 119 120
52 122 123
53 417 418
54 79 80
55 128 129
56 131 132
57 134 135
58 55 56
59 437 438
60 140 141
61 0 1
62 31 32
63 75 76
64 5 6
65 120 121
66 82 83
67 10 11
68 161 162
69 164 165
70 58 59
71 477 478
72 170 171
73 173 174
74 34 35
75 179 180
76 182 183
77 497 498
78 85 86
79 188 189
80 191 192
81 18 19
82 2 3
83 78 79
84 93 94
85 7 8
86 37 38
87 168 169
88 12 13
89 228 229
90 88 89
91 218 219
92 221 222
93 224 225
94 64 65
95 557 558
96 230 231
97 233 234
98 40 41
99 239 240
6, 2*6, 3*6,..., 325*6
é suficiente para gerar todos os valores possíveis00
01
02
Respostas:
JavaScript (ES6),
71 6555 bytesA saída é indexada em 0.
Experimente online!
Quão?
Usando uma função recursiva, 'consumimos' os 2 primeiros caracteres da sequência de múltiplos concatenados de6 ou acrescentamos novos caracteres se tivermos menos de 2 deles.
Exemplo paran=3 :
Comentado
fonte
Python 2 ,
9392858381686559 bytesExperimente online!
fonte
f=lambda n,s='612',i=3:n-int(s[:2])and f(n,s[2:]+`i*6`,i+1)or i-2
f=lambda n,s='612',i=18:n-int(s[:2])and-~f(n,s[2:]+`i`,i+6)
(indexado 0).Perl 6 , 31 bytes
Experimente online!
Usa a sequência indexada em 1.
Explicação:
fonte
Haskell ,
82 ... 65 5854 bytesExperimente online!
fonte
05AB1E , 9 bytes
Indexado a 0. Aceita um único número inteiro ou uma lista de números inteiros como entrada.
Experimente online ou verifique todos os casos de teste .
Explicação:
fonte
100
,"100"
e100.0
são os mesmos para a maioria das funções como cheques iguais e tal. Ainda há conversão para int e conversão para funções de string em 05AB1E para algumas funcionalidades, como classificação (classificação numérica x lexicográfica) ou para remover dígitos decimais após a vírgula de um float ao converter para int, mas eles não são usados com frequência .Carvão , 12 bytes
Experimente online! Link é a versão detalhada do código. Indexado a 0. Explicação:
fonte
J ,
2926 bytes-3 bytes graças ao FrownyFrog!
Experimente online!
Baseado em 0
fonte
i.~_2(".\;)6<@":@*1+i.@325
APL (Dyalog Unicode) , 26 bytes
Experimente online! - Testes para todas as entradas válidas.
Quão:
fonte
⍴
mas APL me assusta ...⍴
é a remodelação da APL. Então, se você deseja remodelar um vetor achatado, basta fazê-lo<new shape vector> ⍴ <vector to reshape>
Python 3 ,
8781 bytes:entrada inteira, saída indexada em 0.
Experimente online!
-6 bytes, graças a @TFeld.
fonte
Wolfram Language (Mathematica) , 74 bytes
Experimente online!
2 bytes salvos de @Expired Data
fonte
Braquilog , 14 bytes
Experimente online!
Muito lento para casos de teste com saídas maiores.
fonte
R ,
7562 bytes-13 bytes graças a Giuseppe.
Experimente online!
fonte
MathGolf , 10 bytes
Experimente online!
Basicamente, o mesmo que a resposta 05AB1E, mas perco um byte ao converter o número concatenado em string explicitamente.
Explicação
fonte
APL + WIN, 37 bytes
Solicita a entrada de número inteiro. 1 indexado.
Experimente online! Costura de Dyalog Classic
fonte
C # (compilador interativo do Visual C #) ,
123 bytes115 bytesExperimente online!
fonte
f(61)
deve retornar0
(parece que sua solução está indexada em 0)K (oK) , 22 bytes
Solução:
Experimente online!
Explicação:
Indexado a 0.
fonte
Gelatina , 10 bytes
Experimente online!
O link TIO fornece todos os valores de 0 a 99.
Explicação
fonte
Java 10,
119104102 bytesPorta da resposta Python 2 do @TFeld .
-2 bytes graças a @Imus .
1 indexado.
Experimente online.
Explicação:
Versão original de
117117 bytes:Indexado a 0.
Experimente online.
Explicação:
fonte
CJam , 17 bytes
Experimente online!
Baseado em 0.
Explicação
fonte
""
, mas nenhum componente interno para0
ou""
às vezes é útil para loops, porque esses geralmente são os valores iniciais desejados. Quanto a não ter100
ou1000
, sim, concordo que seriam mais úteis do que dizer18
ou19
:~
ei
o código. :(Japonês , 12 bytes
Indexado a 0.
Experimente ou teste todas as entradas
fonte
Vermelho ,
9794 bytesExperimente online!
fonte
Stax , 11 bytes
Execute e depure
A entrada é um número inteiro. A saída é indexada em 0.
fonte
Perl 5
-MList::Util=any -ap
, 50 bytesExperimente online!
Saída baseada em 1
fonte
Retina ,
8377 bytesEstou realmente sem prática em programação complicada na Retina, mas estou satisfeito com a extensão em que consegui fazê-lo.
Produz o resultado indexado em 0.
Experimente Online
Explicação
fonte
Swift 5 / Xcode 10.2.1 ,
140134133 bytesExperimente online!
fonte
Retina 0.8.2 , 36 bytes
Experimente online! O link inclui o conjunto de testes. 1 indexado. Explicação:
Prefixe 2406
_
s para a entrada.Substitua a cada 6
_
s pelo número de_
s anteriores . Isso gera a seqüência0
,6
,12
...2400
, mas concatena automaticamente os números.Pule o 0 inicial e encontre o primeiro par de dígitos que corresponde aos dois últimos dígitos, ou seja, a entrada preenchida com zero (porque a sequência termina em
0
; na verdade, a suíte de testes usa o fato de que termina em00
).Emita o número de pares de dígitos até e incluindo a correspondência.
A Retina 1 salva alguns bytes porque seu operador de repetição de string é um byte mais curto e já é padronizado
_
como operando à direita, para que a segunda linha de código se torne justa2406*
. Outro recurso da Retina 1 é o>
modificador que gera a substituição no contexto do separador após a partida, o que, no caso,$.>`
faz com que inclua a duração da partida no resultado. Embora isso custe um byte, nós o salvamos imediatamente, pois não precisamos corresponder e multiplicar por 6 na substituição. Notavelmente, isso também não afeta a contagem geral de bytes, pois o resultado final se parece com o seguinte:0
. (As repetições também precisam ser reduzidas em 6). A retina 1 também pode fazer aritmética básica em uma substituição. Isso significa que não precisamos recorrer a truques para obter múltiplos de 6, apenas geramos os números1..400
fonte
Bash , 80 bytes
1 indexado.
Experimente online!
fonte
C # (compilador interativo do Visual C #) , 88 bytes
Experimente online!
Outra porta das respostas Java e Python .
Minha resposta original abaixo:
C # (compilador interativo do Visual C #) , 102 bytes
Experimente online!
Ambas as soluções usam indexação baseada em 1.
fonte
Ruby , 46 bytes
Experimente online!
fonte
Clojure, 102 bytes
Tanto tempo! :(
fonte