Deixe-me apresentar-lhe os números do GAU
GAU(1) = 1
GAU(2) = 1122
GAU(3) = 1122122333
GAU(4) = 11221223331223334444
GAU(6) = 11221223331223334444122333444455555122333444455555666666
...
GAU(10) = 11221223331223334444122333444455555122333444455555666666122333444455555666666777777712233344445555566666677777778888888812233344445555566666677777778888888899999999912233344445555566666677777778888888899999999910101010101010101010
Esse desafio é bem simples!
Dado um número inteiro n> 0, encontre o número de dígitos de GAU (n)
Exemplo
Vamos fazer o GAU (4)
, seguir as etapas a seguir (até chegarmos ao 4) e concatená-las
[1][122][122333][1223334444]
você deve escrever cada número quantas vezes for seu valor, mas deve contar todas as vezes de 1
Vamos tentar criar o GAU (5)
, teremos que contar de 1 a 1
[1]
de 1 a 2 (mas repetindo cada número quantas vezes for seu valor )
[122]
então de 1 a 3
[122333]
então de 1 a 4
[1223334444]
e finalmente de 1 a 5 (este é o último passo, porque queremos encontrar o GAU ( 5 ))
[122333444455555]
Agora, seguimos todas essas etapas e as concatenamos,
o resultado é GAU (5)
11221223331223334444122333444455555
Estamos interessados no número de dígitos desses números GAU.
Casos de teste
Input⟼Output
n ⟼ Length(GAU(n))
1 ⟼ 1
2 ⟼ 4
3 ⟼ 10
10 ⟼ 230
50 ⟼ 42190
100 ⟼ 339240
150 ⟼ 1295790
Este é um desafio do código-golfe .
O código mais curto em bytes vencerá.
Se você ainda tiver alguma dúvida, entre em contato.
Eu realmente quero que todos aqui entendam esse padrão de complexo oculto mágico
n ⟼ Length(GUA(n))
, não GAU (n).Respostas:
SOGL V0.12 ,
1110875 bytesExperimente aqui! - espera ser chamado como uma função com a entrada na pilha e a caixa de entrada vazia.
Alternativa de 7 bytes, tomando a entrada da caixa de entrada:
Experimente aqui!
fonte
push that numbers length without popping the number
agradávelHaskell , 45 bytes
Experimente online!
fonte
Flacidez Cerebral , 166 bytes
Experimente online!
Explicação
fonte
Casca , 5 bytes
Experimente online!
Explicação
fonte
Geléia , 7 bytes
Experimente online!
fonte
05AB1E , 5 bytes
Experimente online!
Explicação
fonte
Python 2 , 53 bytes
Experimente online!
fonte
Casca , 7 bytes
Experimente online!
Ungolfed / Explicação
fonte
Casca , 7 bytes
Experimente online!
Explicação
fonte
JavaScript (ES6),
5755 bytesExperimente online!
fonte
Python 2 ,
5958 bytesOutro bytes a poeira, graças a Jonathan Frech.
Experimente online!
Não é curto, mas eh ... que diabos.
fonte
len(`i`)*i for
->i*len(`i`)for
.CJam , 20 bytes
Experimente online!
O número é passado no campo "entrada".
Explicação ungolfed: (exemplo input = 2)
Parece difícil quando explicado lol.
fonte
J, 24 bytes
Abordagem de alto nível semelhante à resposta APL do dzaima, traduzida em J, exceto que calculamos o comprimento do número, transformando-o em uma string primeiro em vez de obter logs, e usamos o gancho de J para multiplicar esse comprimento pelo próprio número:
(*#@":"0)
. Depois disso, é apenas a soma da soma da varredura.Experimente online!
fonte
1(#.]*#\*#\.)1#@":@+i.
também funciona para 22 bytesR , 39 bytes
Verifique todos os casos de teste!
Algoritmo simples; Eu observei, como a maioria, que por
i
in1:n
,i
é repetidai*(n-i+1)
vezes. Então, eu crio esse vetor, conto o número de caracteres em cada um e os soma.fonte
Python 2,
5150 bytesfonte
JavaScript (ES6),
5042 bytesAtualizado: agora basicamente uma porta do que outras respostas estão fazendo.
Casos de teste
Mostrar snippet de código
fonte
Mathematica, 66 bytes
fonte
QBIC , 21 bytes
fonte
Na verdade , 13 bytes
Experimente online!
Explicação:
fonte
Japonês ,
1211109 bytesExperimente ou teste todos os números de 1 a 150 .
Explicação
Entrada implícita de número inteiro
U
.Gere uma matriz de números inteiros de 1 a
U
e, em seguida, gere sub-matrizes de 1 a cada número inteiro.Passe os elementos de cada sub-matriz através de uma função.
Converta o elemento atual em uma string (
s
), obtenha o comprimento (Ê
) e multiplique pelo elemento.Reduza a matriz principal adicionando depois de fazer o mesmo com cada sub-matriz.
fonte
Jq 1.5 ,
824943 bytesExpandido
Execução de amostra
Experimente online! também jqplay.org
fonte
Empilhados , 28 bytes
Experimente online!
Alguns podem perguntar: "Em que ponto os apelidos são ilegíveis?" Se isso não estiver próximo, você tem uma definição muito liberal de "legibilidade".
Explicação
fonte
Ruby ,
4140 bytesExperimente online!
fonte
C # (.NET Core) ,
948074 bytesExperimente online!
Eu esperava encontrar uma solução direta, como a resposta de @ kamoroso94 , mas desisti, pois estava gastando muito tempo com isso. Provavelmente existe uma maneira de fazer isso, mas a fórmula precisa se ajustar a cada passo de magnitude.
Agradecimentos
14 bytes salvos graças a @someone
6 bytes salvos graças a @Kevin Cruijssen
fonte
n=>{int b=0,a=0,i;for(;a++<n;)for(i=0;i++<a;)b+=i.ToString().Length*i;return b;}
Experimente online! para 80 bytes e desempenho.i.ToString()
pode ser(i+"")
para salvar mais alguns bytes.MATL , 15 bytes
Experimente online!
Explicação:
fonte
:ttP*Y"VXzn
Perl 6 , 36 bytes
Teste-o
Expandido:
fonte
Carvão ,
1814 bytesExperimente online! Link é a versão detalhada do código. Edit: Usando
Sum
me salvou 4 bytes. Explicação:fonte
Σ
...Sum
ainda tem 18 bytes:Print(Cast(Sum(Map(InclusiveRange(1, InputNumber()), Sum(Map(InclusiveRange(1, i), Times(l, Length(Cast(l)))))))));
Incremented
: P≔⊕NθIΣEθ×⁻θι×ιLIι
. No entanto, usar emIncremented
vez deInclusiveRange
raspar 4 bytes do meu comentário anterior!Ohm v2 , 7 bytes
Experimente online!
fonte
[Dyalog APL],
2220 bytesExperimente online!
Explicação:
fonte
Röda , 31 bytes
Experimente online!
fonte