Las pirámides mayas fueron (y son) una parte importante de la arquitectura antigua, que generalmente se usaban con fines religiosos.
Por lo general, eran pirámides escalonadas, pero los escalones de cada una eran demasiado empinados para subir. Los sacerdotes subirían a la cima de ellos a través de escaleras alternativas para realizar ceremonias. Las pirámides también se usaron como puntos de referencia debido a su altura, y a veces incluso se usaron como sitios de entierro para funcionarios de alto rango.
El reto
Escriba un programa que pueda imprimir un esquema piramidal basado en las especificaciones del usuario (ver más abajo).
Requisitos
Tome una entrada de dos variables separadas por espacios.
La entrada debe aceptarse a través de STDIN (o la alternativa más cercana).
La salida debe ser a través de STDOUT (o la alternativa más cercana).
Entrada
Altura como cualquier entero positivo. Esto se usa como el ancho del nivel base (en bloques). Cada nivel posterior de la pirámide tiene el ancho
n - 1
donden
está el ancho del piso anterior (en bloques).Tamaño de bloque que será 1 o cualquier entero impar impar ≤ (menor que) 10.
Bloques
El tamaño de bloque dado determina el ancho (y la altura) de cada pieza individual. Esencialmente, hay i^2
espacios dentro del cuadro visible donde i
está el tamaño del bloque.
Un bloque 1x1 se vería así:
+++
| |
+++
Mientras que un bloque 5x5 se vería así:
+++++++
| |
| |
| |
| |
| |
+++++++
Bloques adyacentes horizontalmente
Los bloques horizontalmente uno al lado del otro deben tener sus paredes intermedias fusionadas en una sola.
Usted debe tener presente:
+++++
| | |
+++++
En lugar de algo como esto:
++++++
| || |
++++++
Bloques adyacentes verticalmente (-5% de bonificación)
Los bloques verticales uno al lado del otro tienen una excepción especial: la pared intermedia se puede fusionar en una sola.
Entonces, en lugar de bloques 1x1 que se ve así:
+++
| |
+++
+++++
| | |
+++++
Ellos podrían tener este aspecto:
+++
| |
+++++
| | |
+++++
Ejemplos
Input: 3 1
Output:
+++
| |
+++
+++++
| | |
+++++
+++++++
| | | |
+++++++
OR
+++
| |
+++++
| | |
+++++++
| | | |
+++++++
Input: 2 3
Output:
+++++
| |
| |
| |
+++++
+++++++++
| | |
| | |
| | |
+++++++++
OR
+++++
| |
| |
| |
+++++++++
| | |
| | |
| | |
+++++++++
Marcador
Para ser clasificado en el marcador, ponga su respuesta en este formato:
# Language, Score
O si obtienes el bono -5%:
# Language, Score (Bytes - 5%)
Tu puntaje es solo un número entero. Si su puntaje es un decimal, redondee al número entero.
3 2
?
2 3
, saldría cuando n - 1 = 0
donde n
está el ancho del piso anterior en bloques.
1 1
?