Esta es la trenza de Pascal:
1 4 15 56 209 780 2911 10864 40545 151316 564719
1 3 11 41 153 571 2131 7953 29681 110771 413403 1542841
1 4 15 56 209 780 2911 10864 40545 151316 564719
Lo inventé totalmente. Blaise Pascal no tenía una trenza, por lo que puedo decir, y si la tenía, probablemente estaba hecha de cabello en lugar de números.
Se define así:
- La primera columna tiene un sencillo
1
en el medio. - La segunda columna tiene un
1
en la parte superior y en la parte inferior. - Ahora alternamos entre poner un número en el medio o dos copias de un número en la parte superior e inferior.
- Si el número va arriba o abajo, será la suma de los dos números adyacentes (p
56 = 15 + 41
. Ej .). Si inclinas un poco la cabeza, esto es como un paso en el triángulo de Pascal. - Si el número va en el medio, será la suma de los tres números adyacentes (por ejemplo
41 = 15 + 11 + 15
).
Su tarea será imprimir (alguna parte de) esta trenza.
Entrada
Debe escribir un programa o función, que recibe un solo número entero n
, dando el índice de la última columna que se generará.
Puede elegir si la primera columna (imprimiendo solo una 1
en la línea central) corresponde a n = 0
o n = 1
. Esto tiene que ser una elección consistente en todas las entradas posibles.
Salida
Salida de trenza de Pascal hasta la n
columna th. El espacio en blanco debe coincidir exactamente con el diseño de ejemplo anterior, excepto que puede rellenar las líneas más cortas a la longitud de las líneas más largas con espacios y, opcionalmente, puede generar un solo salto de línea final.
En otras palabras, cada columna debe ser exactamente tan ancha como el número (o par de números iguales) en esa columna, los números en columnas sucesivas no deben superponerse y no debe haber espacios entre columnas.
Puede imprimir el resultado en STDOUT (o la alternativa más cercana), o si escribe una función, puede devolver una cadena con el mismo contenido o una lista de tres cadenas (una para cada línea).
Más detalles
Puede suponer que n
no será menor que el índice de la primera columna (por lo tanto, no será menor 0
o 1
dependerá de su indexación). También puede suponer que el último número en la trenza es menor que 256 o el número más grande representable por el tipo entero nativo de su idioma, el que sea mayor . Entonces, si su tipo de entero nativo solo puede almacenar bytes, puede suponer que el más grande n
es 9
o 10
(dependiendo de si usa 0 o 1 n
) y si puede almacenar enteros de 32 bits con signo, n
será como máximo 33
o 34
.
Aplican reglas estándar de código de golf . El código más corto gana.
OEIS
Aquí hay algunos enlaces OEIS relevantes. Por supuesto, estos contienen spoilers de diferentes formas de generar los números en la trenza:
Casos de prueba
Estos casos de prueba usan indexación de 1 base. Cada caso de prueba tiene cuatro líneas, siendo la primera la entrada y las tres restantes la salida.
1
1
---
2
1
1
1
---
3
1
1 3
1
---
5
1 4
1 3 11
1 4
---
10
1 4 15 56 209
1 3 11 41 153
1 4 15 56 209
---
15
1 4 15 56 209 780 2911
1 3 11 41 153 571 2131 7953
1 4 15 56 209 780 2911
---
24
1 4 15 56 209 780 2911 10864 40545 151316 564719 2107560
1 3 11 41 153 571 2131 7953 29681 110771 413403 1542841
1 4 15 56 209 780 2911 10864 40545 151316 564719 2107560