Étant donné un entier en entrée n > 1
, sortez un octogone de type ASCII avec des longueurs latérales composées de n
caractères. Voir les exemples ci-dessous:
n=2
##
# #
# #
##
n=3
###
# #
# #
# #
# #
# #
###
n=4
####
# #
# #
# #
# #
# #
# #
# #
# #
####
n=5
#####
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
#####
and so on.
Vous pouvez l'imprimer sur STDOUT ou le renvoyer en tant que résultat de fonction.
N'importe quelle quantité d'espace blanc étranger est acceptable, tant que les caractères s'alignent correctement.
Règles et E / S
- L'entrée et la sortie peuvent être fournies par n'importe quelle méthode pratique .
- Vous pouvez utiliser n'importe quel caractère ASCII imprimable à la place de
#
(sauf l'espace), mais le caractère "d'arrière-plan" doit être de l'espace (ASCII 32). - Un programme complet ou une fonction sont acceptables.
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) l'emporte.
code-golf
ascii-art
code-golf
geometry
code-golf
balanced-string
code-golf
cops-and-robbers
code-challenge
cops-and-robbers
code-golf
code-golf
random
cryptography
code-golf
array-manipulation
number
code-challenge
integer
code-golf
math
integer
code-golf
math
math
parsing
image-processing
test-battery
math
number
combinatorics
fastest-code
code-golf
code-golf
math
number-theory
rational-numbers
polynomials
code-golf
math
geometry
code-golf
code-golf
number-theory
primes
factoring
code-golf
restricted-source
code-golf
string
decision-problem
counting
code-golf
math
sequence
fibonacci
code-golf
array-manipulation
counting
code-golf
array-manipulation
number-theory
code-golf
array-manipulation
code-golf
random
code-golf
string
hexadecimal
code-golf
string
code-challenge
sorting
code-golf
number
floating-point
code-golf
sorting
code-golf
decision-problem
fibonacci
code-golf
number
combinatorics
code-golf
string
code-golf
math
code-golf
electrical-engineering
code-golf
javascript
code-golf
base-conversion
code-golf
array-manipulation
matrix
binary-matrix
code-golf
kolmogorov-complexity
python
perl
ruby
code-golf
number
code-golf
optimization
integer-partitions
code-golf
string
code-golf
ascii-art
AdmBorkBork
la source
la source
Réponses:
05AB1E , 3 octets
Essayez-le en ligne!
Explication
Voir cette réponse pour comprendre la toile 05AB1E.
la source
JavaScript (ES6),
114106105104103 octetsEssayez-le en ligne!
Comment?
Cela construit le caractère de sortie par caractère.
Étant donné l'entréen , nous calculons:
Pour chaque caractère en(x,y) , nous calculons (h,v) :
Les cellules appartenant à l'octogone remplissent l'une des conditions suivantes:
Par exemple, avecn = 4 (et n′= 3 ):
la source
Fusain , 5 octets
Ma première réponse avec Charcoal!
Explication:
Essayez-le en ligne!
la source
PolygonHollow(:*, InputNumber(), "#");
.Toile ,
151412 octetsEssayez-le ici!
Explication:
Alternative à 12 octets .
la source
R ,
122117115 octetsEssayez-le en ligne!
Transmet la logique de la réponse d' Arnauld , en particulier cette révision au cas où il y aurait d'autres améliorations. Encore 2 octets économisés grâce à la suggestion d'Arnauld d'inverser la logique!
la source
h*v&h+v-n
dans JS car&
c'est un opérateur au niveau du bit; mais c'est un opérateur logique dans R, donc ça marche).Python 2 , 96 octets
Essayez-le en ligne!
la source
Python 2 , 81 octets
Essayez-le en ligne!
Python 2 , 75 octets
Essayez-le en ligne!
Si le mélange des caractères de sortie est OK.
la source
Powershell, 91 octets
la source
PowerShell ,
10797 octetsEssayez-le en ligne!
S'il y avait un moyen bon marché d'inverser la première moitié, cette réponse se sentirait beaucoup mieux. Il construit la moitié gauche, puis le noyau (qui est soit x
#'s
soit des espaces), puis reflète la logique de gauche pour faire la droite. Fait amusant, vous n'avez pas besoin de copier sur un espace blanc à la fin.Déroulé et expliqué:
la source
C (clang) ,
-DP=printf(
-DF=for(i
+ 179 = 199180 octetsEssayez-le en ligne!
Non golfé:
-19 octets grâce à @ceilingcat
la source
Python 2 , 130 octets
Essayez-le en ligne!
Sur mobile, donc pas incroyablement golfé.
la source
(n+2*i)
.Lot, 260 octets
Génère deux espaces de tête sur chaque ligne. Explication: Batch n'a pas d'opérateur de répétition de chaîne, une capacité de découpage de chaîne limitée et nécessite des instructions distinctes pour effectuer l'arithmétique. Il était donc le plus golfique de composer une chaîne de la longueur d'entrée dans les espaces (Batch peut au moins les traduire en
#
s pour les lignes supérieure et inférieure), puis de découper à partir de ou vers une position spécifique allant de 3 à la longueur pour générer les diagonales (c'est ce que réalise la dernière ligne du script).la source
Rubis , 96 octets
Essayez-le en ligne!
Pas encore très golfé. Pourrait jouer au golf si je trouve le temps.
la source
Rouge , 171 octets
Essayez-le en ligne!
Explication:
la source
APL (Dyalog Unicode) , 46 octets SBCS
Cette solution a été fournie par Adám - merci!
Essayez-le en ligne!
Ma solution (presque) originale:
APL (Dyalog Unicode) , 61 octets SBCS
Essayez-le en ligne!
Merci à Adám pour son aide!
L'idée est de trouver le "diamant" qui se trouve en partie dans le carré et d'appliquer un filtre de détection de bord pour "délimiter" l'octagone.
la source
(' '@~5 6∊⍨1⊥⊢∘,)⌺3 3⊢<(⍉⌽⌊⊢)⍣2∘(∘.+⍨∘⍳¯2+3×⊢)
⌺
. Comptez plutôt 1 octet / caractère en vous référant à SBCS selon Meta .Perl 5,
201197188187186 octets:Essayez-le en ligne!
Lit la taille de l'octogone à partir de la première ligne de
STDIN
.la source
$"
au lieu de" "
.Perl 5, 176 octets
Basé sur la réponse de Nathan Mills ci-dessus (que je n'ai pas suffisamment de représentants pour commenter!).
$e
peut être simplifié pour$a-1
économiser 6 octets;$f
peut être affecté en chaîne; enregistrer deux octets; Je ne sais pas d'où viennent les deux autres!Bien qu'il
$e
puisse être remplacé$a-1
dans les deux endroits, il se produit, les supports supplémentaires nécessaires signifient que cela ne fait qu'équilibrer.Non golfé:
la source
Perl 6 ,
7673 octets-3 octets grâce à Jo King
Essayez-le en ligne!
Renvoie une liste de lignes.
la source
C (gcc) ,
158153150 octetscinqhuit octets grâce au plafond .Essayez-le en ligne!
la source
Python 3 , 224 octets
Essayez-le en ligne!
la source
Perl 5,
170168166 166 octetsCela fonctionne par la magie des regex. Le "si" n'est nécessaire que pour traiter le cas pathologique de n = 2, qui autrement génère quelque chose comme:
cela peut probablement être codé.
Je pense qu'il peut y avoir beaucoup plus à gagner en créant une chaîne jusqu'au milieu puis en l'inversant. Bien sûr, nous devons ensuite insérer / supprimer un espace supplémentaire si n est impair (ou utiliser un espace fin: p).
Non golfé
Je pense que cela peut probablement être joué un peu plus, mis à part des changements importants comme pousser sur
$@
et imprimer à la fin.[Des espaces golfés autour
..
et déplacé l'impression avant les affectations dans deux cas, économisant sur les points-virgules.]la source
\s
et pas seulement un espace dans le dernier regexJ,
594541 octetsEssayez-le en ligne!
Ajoutera une explication ce soir.
la source
Perl 5, 98 octets
TIO
la source