Dados inteiros positivos e h produzem w colunas e h linhas de texto, conforme descrito abaixo.
A primeira linha começa com 11 0
s, a segunda linha com 10 1
s, a terceira com nove se 2
assim por diante na décima linha com dois 9
s. Em cada uma dessas dez primeiras linhas, após a execução inicial de dígitos consecutivos, o próximo dígito mais baixo aparece duas vezes antes do segundo dígito mais baixo aparecer duas vezes, com esse padrão repetindo para sempre. Se ocorrer uma sequência de 0
s, os dígitos depois serão sempre 9
s.
As linhas abaixo da décima linha são iguais às linhas imediatamente acima, mas deslocadas para a direita em um. O novo dígito que aparece é o mesmo que o dígito anterior mais à esquerda, se não estiver próximo a outra instância. Caso contrário, é o próximo dígito mais alto (alternando de 9 para 0).
Os primeiros elementos são os seguintes:
00000000000
11111111110
22222222211
33333333221
44444443322
55555544332
66666554433
77776655443
88877665544
99887766554
Aqui está uma imagem com texto colorido para tornar o padrão mais claro.
Se você precisar produzir menos colunas / linhas, basta cortar o texto acima.
Se você precisar produzir mais colunas / linhas do que isso, as escadas existentes deverão ser estendidas. Se mais colunas / linhas adicionar novas escadas de dígitos consecutivos, os dígitos deverão ser escolhidos ciclicamente dos números inteiros. Assim, para a entrada a saída deve ser
000000000009988
111111111100998
222222222110099
333333332211009
444444433221100
555555443322110
666665544332211
777766554433221
888776655443322
998877665544332
099887766554433
009988776655443
100998877665544
Aqui está uma imagem deste texto com cores:
Regras
- A saída pode ser fornecida por qualquer método conveniente .
- Um programa completo ou uma função são aceitáveis. Se uma função, você pode retornar a saída em vez de imprimi-la.
- Você pode retornar uma lista de linhas, se preferir.
- Você pode retornar uma matriz de dígitos 2D ou uma lista de listas de dígitos, se preferir.
- Falhas padrão não permitidas.
O menor código vence.
Casos de teste
1,1
0
3,2
000
111
20,1
00000000000998877665
11,10
00000000000
11111111110
22222222211
33333333221
44444443322
55555544332
66666554433
77776655443
88877665544
99887766554
15,13
000000000009988
111111111100998
222222222110099
333333332211009
444444433221100
555555443322110
666665544332211
777766554433221
888776655443322
998877665544332
099887766554433
009988776655443
100998877665544
fonte
Respostas:
Python 3,
9493787774 bytes-1 byte de dylnan
-15 bytes retornando uma lista de listas em vez de imprimir a partir do xnor
-1 byte, alternando a ordem das partes
(j-i+10)//2%10
ej
deif
-else
-3 bytes de Jo King , alterando o
if
-else
para uma lista.Experimente online!
fonte
C (gcc) ,
10110099 bytesExperimente online!
fonte
printf("%d",
->putchar(48+
Tela, 14 bytes
Experimente aqui!
Ao fazer isso, notei em vários lugares que tive módulos negativos no Canvas (aqui, isso significava que
»
- floor div 2 - arredondado para 0). A resposta anterior de 18 bytes que funcionou sem correções não funciona mais (porque eu salvo apenasmain.js
entre versões), mas o TIO ainda tem a versão antigaExplicação:
fonte
Carvão ,
2017 bytesExperimente online! Link é a versão detalhada do código. Explicação:
Editar: salvou 3 bytes mudando para o algoritmo de @ dzaima.
fonte
Gelatina , 14 bytes
Experimente online! Ou consulte um conjunto de testes (pós-formatado).
Quão?
fonte
Kotlin , 78 bytes
Experimente online!
fonte
Geléia , 19 bytes
Usa uma abordagem muito semelhante à de pizzapants e Neil . Guardou 1 byte graças a Jonathan Allan .
Experimente online!
O link auxiliar
Este é um link monádico (o equivalente do Jelly de uma única função de argumento), que pode ser invocado no próximo link usando o quick
Ç
. Ele pega uma lista de dois números inteiros e faz o seguinte:Reduza por subtração.
Aplique a metade de um inteiro e adicione 5 e, em seguida, use o módulo 10.
O link principal
ç
E para cada par do produto cartesiano, se a soma for menor que 9, então:
Recupere a cabeça do par (primeiro elemento). De outra forma,
Ligue para o link auxiliar (explicado acima) no par.
fonte
p’Ḣ_/HḞ+ʋS<9Ɗ?€5s%⁵
oup’Ḣ_/:2+ʋS<9Ɗ?€5s%⁵
, ou como uma mônada comp’Ḣ_/:2+5ƲS<9Ɗ?€s%⁵