เขียนโปรแกรมหรือฟังก์ชั่นที่รับจำนวนเต็มบวก N และพิมพ์หรือส่งกลับสตริงศิลปะ ASCII N × N ที่ครึ่งบนเป็นครึ่งวงกลมที่ทำจาก(
's และครึ่งล่างเป็นรูปสามเหลี่ยมชี้ลงที่ทำจากV
' โดยมี ช่องว่างที่ใช้เป็นช่องว่างภายใน
กล่าวอีกนัยหนึ่งให้ทำกรวยไอศครีม ASCII: (เอาต์พุตสำหรับ N = 17)
(((((
(((((((((
(((((((((((((
(((((((((((((
(((((((((((((((
(((((((((((((((
(((((((((((((((((
(((((((((((((((((
VVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVV
VVVVVVVVVVVVV
VVVVVVVVVVV
VVVVVVVVV
VVVVVVV
VVVVV
VVV
V
ตัวอย่าง
นี่คือผลลัพธ์สำหรับ N = 1 ถึง 5 โปรดทราบว่าสำหรับคี่ N, สามเหลี่ยมจะต้องเป็นครึ่งที่ใหญ่กว่าเสมอ
V
((
VV
(((
VVV
V
((
((((
VVVV
VV
(((
(((((
VVVVV
VVV
V
และนี่คือการดำเนินการอ้างอิง Python 3 ที่ไม่ได้รับความนิยม:
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))
รายละเอียด
- รับอินพุตจาก stdin, บรรทัดคำสั่งหรือเป็นอาร์กิวเมนต์ของฟังก์ชัน ส่งออกไปยัง stdout หรือคล้ายกันหรือคุณอาจกลับสตริงถ้าคุณเขียนฟังก์ชั่น
- ส่วนกรวยควรตรงกับการใช้งานอ้างอิงสำหรับ N. ทั้งหมดอย่างแน่นอน
- ส่วนไอศครีมไม่จำเป็นต้องตรงกับการใช้งานอ้างอิงอย่างแน่นอนตราบใดที่มันเห็นได้ชัดในรูปของครึ่งวงกลมสำหรับ N. ทั้งหมด (นี่คือดังนั้นคุณไม่ต้องกังวลเกี่ยวกับความแตกต่างเล็กน้อยในครึ่งวงกลมเนื่องจากข้อผิดพลาด roundoff .)
- ไม่ควรมีช่องว่างนำหน้าที่ไม่จำเป็น แต่อาจมีช่องว่างต่อท้ายที่ไม่จำเป็น
- เอาท์พุทอาจมีการขึ้นบรรทัดใหม่ต่อท้าย
- คุณอาจเลือกใช้ใด ๆ ที่แตกต่างกัน 3 อื่น ๆASCII พิมพ์ตัวอักษรในสถานที่ของ
(
,V
และพื้นที่
เกณฑ์การให้คะแนน
การส่งที่สั้นที่สุดในหน่วยไบต์ชนะ Tiebreaker ไปที่การส่งที่เก่าแก่ที่สุด