Cho n (số dòng, lẻ) và m (số cột, bội của n). In thảm kích thước n x m với mẫu .|. đối xứng, dòng giữa ghi WELCOME. Dùng ký tự '-', '.', '|'.
Ví dụ n=5, m=15:
------.|.------
---.|..|..|.---
----WELCOME----
---.|..|..|.---
------.|.------
Thuật toán
- Nửa trên:
i = 1, 3, 5, ..., n-2. Mỗi dòng:(m - 3*i)//2dấu '-', rồiilần.|., rồi dấu '-'. - Dòng giữa:
(m-7)//2dấu '-',WELCOME, dấu '-'. - Nửa dưới: ngược lại nửa trên.
Ví dụ mã nguồn
def solve(n, m):
for i in range(1, n, 2):
print('-'*int((m-i*3)/2) + '.|.'*i + '-'*int((m-i*3)/2))
print('-'*int((m-7)/2) + 'WELCOME' + '-'*int((m-7)/2))
for i in range(n-2, -1, -2):
print('-'*int((m-i*3)/2) + '.|.'*i + '-'*int((m-i*3)/2))
n = 15
m = 45
solve(n, m)
Đầu vào / Đầu ra
Input: 15, 45
Output: (thảm 15x45 với WELCOME ở giữa)