Les pyramides mayas étaient (et sont) une partie importante de l'architecture ancienne, qui étaient généralement utilisées à des fins religieuses.
C'étaient généralement des pyramides à degrés, mais les marches sur chacune étaient trop raides pour grimper. Les prêtres grimperaient jusqu'au sommet d'eux via des escaliers alternatifs pour effectuer des cérémonies. Les pyramides ont également été utilisées comme points de repère en raison de leur hauteur, et parfois même utilisées comme lieux de sépulture pour les hauts fonctionnaires.
Le défi
Écrivez un programme qui peut imprimer un schéma pyramidal basé sur les spécifications de l'utilisateur (voir ci-dessous).
Exigences
Prenez une entrée de deux variables séparées par des espaces.
L'entrée doit être acceptée via STDIN (ou l'alternative la plus proche).
La sortie doit être via STDOUT (ou l'alternative la plus proche).
Contribution
Hauteur comme tout entier positif. Ceci est utilisé comme largeur du niveau de base (en blocs). Chaque niveau suivant de la pyramide a la largeur
n - 1
oùn
est la largeur de l'étage précédent (en blocs).Taille de bloc qui sera 1 ou tout entier positif impair ≤ (inférieur à) 10.
Blocs
La taille de bloc donnée détermine la largeur (et la hauteur) de chaque pièce individuelle. Essentiellement, il y a des i^2
espaces à l'intérieur de la boîte visible où i
est la taille du bloc.
Un bloc 1x1 ressemblerait à ceci:
+++
| |
+++
Alors qu'un bloc 5x5 ressemblerait à ceci:
+++++++
| |
| |
| |
| |
| |
+++++++
Blocs adjacents horizontalement
Les blocs côte à côte horizontalement doivent avoir leurs parois centrales fusionnées en une seule.
Vous devez avoir ceci:
+++++
| | |
+++++
Au lieu de quelque chose comme ça:
++++++
| || |
++++++
Blocs adjacents verticalement (bonus de -5%)
Les blocs verticalement côte à côte ont une exception spéciale: le mur du milieu peut être fusionné en un seul.
Donc, au lieu de blocs 1x1 ressemblant à ceci:
+++
| |
+++
+++++
| | |
+++++
Ils pourraient ressembler à ceci:
+++
| |
+++++
| | |
+++++
Exemples
Input: 3 1
Output:
+++
| |
+++
+++++
| | |
+++++
+++++++
| | | |
+++++++
OR
+++
| |
+++++
| | |
+++++++
| | | |
+++++++
Input: 2 3
Output:
+++++
| |
| |
| |
+++++
+++++++++
| | |
| | |
| | |
+++++++++
OR
+++++
| |
| |
| |
+++++++++
| | |
| | |
| | |
+++++++++
Tableau d'affichage
Pour être classé sur le tableau de bord, mettez votre réponse dans ce format:
# Language, Score
Ou si vous obtenez le bonus -5%:
# Language, Score (Bytes - 5%)
Votre score n'est qu'un nombre entier. Si votre score est décimal, arrondissez au nombre entier.
3 2
?
2 3
, elle se terminerait quand n - 1 = 0
où n
est la largeur de l'étage précédent en blocs.
1 1
?