Schreiben Sie ein Programm oder eine Funktion, die eine positive Ganzzahl N aufnimmt und eine N × N ASCII-Zeichenfolge ausgibt oder zurückgibt, deren obere Hälfte ein Halbkreis aus (
's und deren untere Hälfte ein nach unten weisendes Dreieck aus V
' s ist, mit Leerzeichen als Polsterung.
Mit anderen Worten, stellen Sie eine ASCII-Eistüte her: (Ausgabe für N = 17)
(((((
(((((((((
(((((((((((((
(((((((((((((
(((((((((((((((
(((((((((((((((
(((((((((((((((((
(((((((((((((((((
VVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVV
VVVVVVVVVVVVV
VVVVVVVVVVV
VVVVVVVVV
VVVVVVV
VVVVV
VVV
V
Beispiele
Hier sind die Ausgänge für N = 1 bis 5. Beachten Sie, dass für ungerade N das Dreieck immer die größere Hälfte sein muss.
V
((
VV
(((
VVV
V
((
((((
VVVV
VV
(((
(((((
VVVVV
VVV
V
Hier ist ein N = 101 Pastebin.
Und hier ist eine ungolfed Python 3 Referenzimplementierung:
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))
Einzelheiten
- Nehmen Sie Eingaben von stdin, der Befehlszeile oder als Funktionsargument entgegen. Ausgabe an stdout oder ähnliches, oder Sie geben die Zeichenfolge zurück, wenn Sie eine Funktion schreiben.
- Der Kegelabschnitt sollte genau mit der Referenzimplementierung für alle N übereinstimmen.
- Die Eisportion muss nicht genau mit der Referenzimplementierung übereinstimmen, solange sie für alle N eindeutig die Form eines Halbkreises hat. (Sie müssen sich also nicht um geringfügige Unterschiede im Halbkreis aufgrund von Rundungsfehlern sorgen .)
- Es sollten keine unnötigen führenden Leerzeichen vorhanden sein, es können jedoch überflüssige nachgestellte Leerzeichen vorhanden sein.
- Die Ausgabe kann optional einen nachgestellten Zeilenumbruch enthalten.
- Optional können Sie alle drei anderen verschiedenen verwenden druckbaren ASCII - Zeichen anstelle von
(
,V
und Raum.
Wertung
Die kürzeste Übermittlung in Bytes gewinnt. Tiebreaker geht zur ältesten Vorlage.