Dados enteros positivos, y generan columnas y filas de texto como se describe a continuación.w h
La primera fila comienza con 11 0
s, la segunda fila con 10 1
s, la tercera con nueve 2
sy así sucesivamente hasta la décima fila con dos 9
s. En cada una de estas primeras diez filas, siguiendo la ejecución inicial de dígitos consecutivos, el siguiente dígito más bajo aparece dos veces antes de que el segundo siguiente dígito más bajo aparezca dos veces, con este patrón que se repite para siempre. Si se 0
produce una serie de s, los dígitos que siguen son siempre 9
s.
Las filas debajo de la décima fila son las mismas que la fila inmediatamente superior, pero se desplazan a la derecha por una. El nuevo dígito que aparece es el mismo que el dígito anterior más a la izquierda si no estaba al lado de otra instancia de sí mismo. De lo contrario, es el siguiente dígito más alto (pasando de 9 a 0).
Los primeros elementos son los siguientes:
00000000000
11111111110
22222222211
33333333221
44444443322
55555544332
66666554433
77776655443
88877665544
99887766554
Aquí hay una imagen con texto en color para que el patrón sea más claro.
Si necesita producir menos columnas / filas, simplemente debe recortar el texto anterior.
Si necesita producir más columnas / filas que esto, las escaleras existentes deben extenderse. Si más columnas / filas agregan nuevas escaleras de dígitos consecutivos, los dígitos deben elegirse cíclicamente entre los enteros. Por lo tanto, para la entrada la salida debe ser
000000000009988
111111111100998
222222222110099
333333332211009
444444433221100
555555443322110
666665544332211
777766554433221
888776655443322
998877665544332
099887766554433
009988776655443
100998877665544
Aquí hay una imagen de este texto con color:
Reglas
- La salida se puede dar por cualquier método conveniente .
- Un programa completo o una función son aceptables. Si es una función, puede devolver el resultado en lugar de imprimirlo.
- Puede devolver una lista de líneas si lo prefiere.
- Puede devolver una matriz 2D de dígitos o una lista de listas de dígitos si lo prefiere.
- Lagunas estándar no permitidas.
El código más corto gana.
Casos de prueba
La entrada se toma como para los casos de prueba.
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
Respuestas:
Python 3,
9493787774 bytes-1 byte de dylnan
-15 bytes devolviendo una lista de listas en lugar de imprimir desde xnor
-1 byte cambiando el orden de las partes
(j-i+10)//2%10
yj
deif
-else
-3 bytes de Jo King cambiando el
if
-else
a una lista.Pruébalo en línea!
fuente
C (gcc) ,
10110099 bytesPruébalo en línea!
fuente
printf("%d",
->putchar(48+
Lienzo, 14 bytes.
Pruébalo aquí!
Al hacer esto, noté que en varios lugares tenía módulos negativos en Canvas (aquí, significaba que
»
- floor div 2 - redondeado hacia 0). La respuesta anterior de 18 bytes que funcionó sin correcciones ya no funciona (porque solo guardomain.js
entre versiones) pero TIO todavía tiene la versión anteriorExplicación:
fuente
Carbón ,
2017 bytesPruébalo en línea! El enlace es a la versión detallada del código. Explicación:
Editar: se guardaron 3 bytes cambiando al algoritmo de @ dzaima.
fuente
Gelatina , 14 bytes
Un enlace diádico que toma a la izquierda y hw h a la derecha que produce una lista de listas de dígitos.
Pruébalo en línea!O vea un conjunto de pruebas (con formato posterior) .
¿Cómo?
fuente
Kotlin , 78 bytes
Pruébalo en línea!
fuente
Jalea , 19 bytes
Utiliza un enfoque muy similar a pizzapants ' y Neil's . Guardado 1 byte gracias a Jonathan Allan .
Pruébalo en línea!
El enlace de ayuda
Este es un enlace monádico (el equivalente Jelly de una función de argumento único), que se puede invocar desde el siguiente enlace usando el rápido
Ç
. Toma una lista de dos enteros y hace lo siguiente:Reducir por sustracción.
Coloca su mitad en un entero y suma 5, luego toma el módulo 10.
El enlace principal
ç
Y para cada uno de los pares en el producto cartesiano, si su suma es menor que 9, entonces:
Recupera la cabeza del par (primer elemento). De otra manera,
Llame al enlace auxiliar (explicado anteriormente) en el par.
fuente
p’Ḣ_/HḞ+ʋS<9Ɗ?€5s%⁵
op’Ḣ_/:2+ʋS<9Ɗ?€5s%⁵
, o como una mónada conp’Ḣ_/:2+5ƲS<9Ɗ?€s%⁵