Écrivez un programme ou une fonction qui prend un entier positif N, et imprime ou renvoie une chaîne d'art ASCII N × N dont la moitié supérieure est un demi-cercle fait de ('s et dont la moitié inférieure est un triangle pointant vers le bas fait de V' s, avec espaces utilisés comme rembourrage.
En d'autres termes, faites un cornet de crème glacée ASCII: (sortie pour N = 17)
(((((
(((((((((
(((((((((((((
(((((((((((((
(((((((((((((((
(((((((((((((((
(((((((((((((((((
(((((((((((((((((
VVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVV
VVVVVVVVVVVVV
VVVVVVVVVVV
VVVVVVVVV
VVVVVVV
VVVVV
VVV
V
Exemples
Voici les sorties pour N = 1 à 5. Notez que pour N impair, le triangle doit toujours être la moitié la plus grande.
V
((
VV
(((
VVV
V
((
((((
VVVV
VV
(((
(((((
VVVVV
VVV
V
Et voici une implémentation de référence Python 3 non golfée:
N = int(input())
ic = [[' '] * N for _ in range(N)]
for y in range(N//2):
for x in range(N):
if (x - (N - 1) / 2)**2 + (y - (N - 1) / 2)**2 < (N / 2)**2:
ic[y][x] = '('
for y in range(N//2, N):
for x in range(y - N//2, N - (y - N//2)):
ic[y][x] = 'V'
for line in ic:
print(''.join(line))
Détails
- Prenez l'entrée de stdin, de la ligne de commande ou comme argument de fonction. Sortie vers stdout ou similaire, ou vous pouvez renvoyer la chaîne si vous écrivez une fonction.
- La partie conique doit correspondre exactement à l'implémentation de référence pour tous les N.
- La portion de crème glacée n'a pas besoin de correspondre exactement à la mise en œuvre de référence tant qu'elle est clairement sous la forme d'un demi-cercle pour tous les N. .)
- Il ne doit pas y avoir d'espaces de début inutiles mais il peut y avoir des espaces de fin superflus.
- La sortie peut éventuellement contenir une nouvelle ligne de fin.
- Vous pouvez éventuellement utiliser les 3 autres distincts ASCII imprimables caractères à la place
(,Vet l' espace.
Notation
La soumission la plus courte en octets l' emporte. Tiebreaker va à la soumission la plus ancienne.