Os retângulos têm essa propriedade legal - um retângulo consiste exatamente em caracteres!
Uma propriedade mais interessante é que os retângulos podem ser alinhados de maneira agradável em uma tabela de multiplicação - por exemplo, uma tabela :
# ## ###
# ## ###
# ## ###
# ## ###
# ## ###
# ## ###
Seu desafio é, dado um número ( ), gerar uma tabela de multiplicação formatada .
Regras
- Você pode inserir uma entrada acima ou abaixo de
- Regras de E / S padrão aplicáveis
- Você pode escolher qualquer caractere que não seja um espaço em branco para representar os blocos; todos os outros caracteres (embora as novas linhas sejam especiais) são considerados espaços em branco. O caractere escolhido pode ser diferente para entradas diferentes, mas deve ser o mesmo em toda a entrada
- O resultado pode ter caracteres desnecessários, desde que a tabela se alinhe e não haja ocorrências do caractere escolhido que não façam parte da saída necessária
- Os separadores devem ter 1 caractere de largura / altura e os retângulos devem ser compactados (ou seja, sem separadores entre os caracteres)
- As linhas vazias podem estar vazias, o preenchimento não é obrigatório
- O resultado pode ser uma sequência, matriz, vetor de linhas, matriz de matrizes de caracteres ou qualquer coisa 2Dish
- Como alternativa, é possível gerar uma matriz / vetor de vetores / qualquer item 2D de números, mas o plano de fundo e o primeiro plano devem ser 2 números distintos (que podem variar de entrada para entrada, mas não em toda a saída) e nenhum outro número pode estar presente. Caracteres circundantes extras também são permitidos com este formato (embora eles devam corresponder ao número do plano de fundo)
- Isso é código-golfe , a resposta mais curta em bytes, por idioma, vence!
Exemplos
Para a entrada 2
, uma saída ascii-art válida, com o caractere ∙
, é:
∙ ∙∙
Result: ∙ ∙∙.
∙ ∙∙
sim, o período existe apenas para confundi-lo.
Outra resposta válida como uma matriz numérica, sendo 2 o número de segundo plano e 9 o primeiro plano:
[[9,2,9,9,2,2],
[2,2,2,2,2,2],
[9,2,9,9,2,2],
[9,2,9,9,2,2]]
Um exemplo de saída inválido seria
# # #
# # #
# # #
como os retângulos têm separadores entre eles.
Exemplo de saídas para :
# ## ### ####
# ## ### ####
# ## ### ####
# ## ### ####
# ## ### ####
# ## ### ####
# ## ### ####
# ## ### ####
# ## ### ####
# ## ### ####
1 0 1 1 0 1 1 1 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 1 0 1 1 1 0 1 1 1 1
1 0 1 1 0 1 1 1 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 1 0 1 1 1 0 1 1 1 1
1 0 1 1 0 1 1 1 0 1 1 1 1
1 0 1 1 0 1 1 1 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 1 0 1 1 1 0 1 1 1 1
1 0 1 1 0 1 1 1 0 1 1 1 1
1 0 1 1 0 1 1 1 0 1 1 1 1
1 0 1 1 0 1 1 1 0 1 1 1 1
Respostas:
Haskell , 43 bytes
Experimente online!
Uma abordagem inteligente de Ørjan Johansen gerando zeros e zeros, gerando cada
10...00
parte como a representação de uma potência de 10.Haskell , 49 bytes
Experimente online!
Gera um padrão como
[1,0,1,0,0,1,0,0,0,...]
, em seguida, cria um 2D tirando osmin
pares. A estranheza sem ponto salva 2 bytes sobre os mais legíveis:Experimente online!
fonte
flip(map.max)=mapM max
.(->) b
, entãomapM :: (a -> b -> c) -> [a] -> b -> [c]
.flip(map.max)
paramapM max
R ,
5654433630 bytesExperimente online!
Graças a digEmAll por -7 bytes.
fonte
JavaScript (ES6),
73 7269 bytesRetorna uma string composta de 1, espaços e feeds de linha.
Experimente online!
JavaScript (ES7),
87 8382 bytesGuardado 3 bytes graças a @dzaima
Retorna uma matriz binária, que é construída célula por célula.
Experimente online!
Quão?
(Nota: conforme permitido pelas regras de desafio, produzimos uma matriz de largura )w + 1
Da mesma forma, a célula localizada em está vazia se o seguinte quadrático admitir uma raiz inteira para ou :( X, Y) k = X k = Y
cujo determinante é:
fonte
MATL,
1410 bytesEsta resposta usa
1
para os blocos e0
para o fundoExperimente no MATL Online
Explicação
fonte
Gelatina , 8 bytes
Experimente online!
fonte
APL (Dyalog Unicode) ,
121012 bytes SBCSExperimente online!
Editar: -2 bytes de ngn. +2 bytes porque as respostas anteriores eram inválidas (com ideia graças a ngn e dzaima).
Explicação
A saída deve se parecer com:
fonte
⎕
para evitar o{
}
Geléia , 7 bytes
Experimente online!
Gera uma matriz de dígitos, usando para os retângulos e para o preenchimento entre eles. O link TIO contém um rodapé que formata uma matriz de dígitos de maneira legível por humanos, alinhando as linhas e colunas.0 1
Explicação
O número na célula da tabela resultante será se ou for um número triangular ou caso contrário (porque OR bit a bit funciona como OR lógico em 0 e 1). (Usamos o intervalo 1, porque o Jelly usa a indexação baseada em 1, para que não tenhamos que nos preocupar com a coluna 0 incorretamente cheia de 0s; precisamos adicionar 1 à entrada porque o array produzido por(x,y) 1 x y 0
R
Ṭ
para no maior elemento dado na entrada, portanto, precisamos desenhar uma linha no lado direito e na parte inferior.) As lacunas entre os números triangulares são os números inteiros consecutivos; portanto, os blocos retangulares formados pelas lacunas entre as linhas terminam. conforme os tamanhos solicitados pela pergunta; e o uso de uma operação OR (neste caso, bit a bit) permite que as linhas se cruzem corretamente.fonte
05AB1E , 9 bytes
Define um programa .f: Nat→List[List[Nat]]
Código:
Usa a codificação 05AB1E . Experimente online! ou use a versão impressa bonita .
Explicação:
fonte
C # (compilador interativo do Visual C #) ,
9695 bytes-1 byte graças à Modalidade de Ignorância
Experimente online!
fonte
n--
nanew string
seção?Python 2 , 67 bytes
Experimente online!
Imprime linhas em branco para linhas vazias, que o desafio permite.
Mesmo comprimento (com a entrada um acima
n
):Experimente online!
fonte
Wolfram Language (Mathematica) , 41 bytes
Experimente online!
fonte
Carvão , 18 bytes
Experimente online! Link é a versão detalhada do código. Explicação:
fonte
C # (.NET Core) ,
208155 bytesExperimente online!
Uma versão muito revisada, graças a várias pessoas úteis (veja os comentários).
fonte
PowerShell ,
4240 bytes-2 bytes graças ao mazzy .
Experimente online!
fonte
Java 11, 109 bytes
Porta da resposta C # .NET do @ ASCII-only .
Experimente online.
fonte
repeat
método.APL + WIN, 29 bytes
Explicação:
Exemplo:
fonte
J , 17 bytes
Experimente online!
fonte
I.
truque!Mouse-2002 , 79 bytes
Abusando das macros do Mouse para repetir a funcionalidade.
Experimente online!
fonte
Ruby , 55 bytes
Experimente online!
Quão?
Primeiro, crie a primeira linha e, em seguida, itere através de seus caracteres. Imprima a linha inteira se o caractere for '#'; caso contrário, imprima o caractere único (que é um espaço)
fonte
Flacidez cerebral , 170 bytes
Experimente online!
fonte
Perl 6 ,
3533 bytesExperimente online!
Chamada anônima que pega um número e imprime a tabela de multiplicação com
*
s com uma nova linha à direita.Explicação:
fonte
Haskell,
6968 bytesRetorna uma matriz de números.
Experimente online!
Variantes
f
com a mesma contagem de bytes:fonte
Stax , 7 bytes
Execute e depure
O personagem escolhido é backtick. (Como você codifica o formato na remarcação?)
Isso significa
a
eb
é considerado espaço em branco estranho.fonte
MathGolf , 20 bytes
Experimente online!
O MathGolf realmente precisa de mais funcionalidades para dividir listas e criar listas 2D.
Explicação
fonte
Tinta ,
151152151 bytesExperimente online!
Ainda bem que as regras permitem caracteres em excesso.
Editar: +1: espaçamento fixo. Além disso, exiba usando @ (que não precisa ser escapado) em vez de # (o que é necessário)
Edit: -1: Aparentemente, essa correção também significava que eu não precisava mais de um período à direita para forçar uma nova linha nas linhas não vazias. Arrumado.
fonte
C ++,
170156 bytesGraças a dzaima
fonte
SmileBASIC,
8377 bytesSaída gráfica. Entrada é
N-1
fonte
Python 3 ,
8883 bytes-5 bytes de Jo King
Experimente online!
fonte
l
fora do loop. Experimente online!Perl 6, 63 bytes
fonte
.join(' ')
não faz nada,'#'
pode ser\*
, em vez disso, as seqüências de nova linha podem usar novas linhas literais, ambasl.map(str x*)
podem ser(str Xx l)
. 38 bytesC (gcc) ,
108104 bytes-4 bytes graças ao ceilingcat
Experimente online!
fonte