Giả sử chúng ta có một số n. Chúng ta phải tạo ra các rangoli bảng chữ cái có kích thước n x n. n phải nằm trong khoảng 1 và 26 và nó sẽ bắt đầu từ a và kết thúc ở z khi n là 26.
Vì vậy, nếu đầu vào là 5, thì đầu ra sẽ là
--------e-------- ------e-d-e------ ----e-d-c-d-e---- --e-d-c-b-c-d-e-- e-d-c-b-a-b-c-d-e --e-d-c-b-c-d-e-- ----e-d-c-d-e---- ------e-d-e------ --------e--------
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- đối với tôi trong phạm vi n-1 đến 0, giảm đi 1, thực hiện
- đối với j trong phạm vi từ 0 đến i-1, thực hiện
- in "-"
- đối với j trong phạm vi n-1 đến i + 1, giảm đi 1, thực hiện
- in ký tự có ASCII là j + 97 và in thêm dấu "-" ở cuối
- đối với j trong phạm vi từ i đến n-1, thực hiện
- nếu j không giống với n-1, thì
- in ký tự có ASCII là j + 97 và in thêm dấu "-" ở cuối
- nếu không,
- in ký tự có ASCII là j + 97
- nếu j không giống với n-1, thì
- đối với j trong phạm vi 0 đến 2 * i - 1, thực hiện
- in "-" ở cuối
- chuyển sang dòng tiếp theo
- đối với j trong phạm vi từ 0 đến i-1, thực hiện
- đối với tôi trong phạm vi từ 1 đến n-1, hãy thực hiện
- đối với j trong phạm vi từ 0 đến i, thực hiện
- in "-"
- đối với j trong phạm vi n-1 đến i + 1, giảm đi 1, thực hiện
- in ký tự có ASCII là j + 97 và in thêm dấu "-" ở cuối
- đối với j trong phạm vi từ i đến n-1, thực hiện
- nếu j không giống với n-1, thì
- in ký tự có ASCII là j + 97 và in thêm dấu "-" ở cuối
- nếu không,
- in ký tự có ASCII là j + 97
- nếu j không giống với n-1, thì
- đối với j trong phạm vi 0 đến 2 * i - 1, thực hiện
- in "-" ở cuối
- chuyển đến dòng tiếp theo
- đối với j trong phạm vi từ 0 đến i, thực hiện
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn
def solve(n): for i in range(n-1,-1,-1): for j in range(i): print(end="--") for j in range(n-1,i,-1): print(chr(j+97),end="-") for j in range(i,n): if j != n-1: print(chr(j+97),end="-") else: print(chr(j+97),end="") for j in range(2*i): print(end="-") print() for i in range(1,n): for j in range(i): print(end="--") for j in range(n-1,i,-1): print(chr(j+97),end="-") for j in range(i,n): if j != n-1: print(chr(j+97),end="-") else: print(chr(j+97),end="") for j in range(2*i): print(end="-") print() n = 8 solve(n)
Đầu vào
8
Đầu ra
--------------h-------------- ------------h-g-h------------ ----------h-g-f-g-h---------- --------h-g-f-e-f-g-h-------- ------h-g-f-e-d-e-f-g-h------ ----h-g-f-e-d-c-d-e-f-g-h---- --h-g-f-e-d-c-b-c-d-e-f-g-h-- h-g-f-e-d-c-b-a-b-c-d-e-f-g-h --h-g-f-e-d-c-b-c-d-e-f-g-h-- ----h-g-f-e-d-c-d-e-f-g-h---- ------h-g-f-e-d-e-f-g-h------ --------h-g-f-e-f-g-h-------- ----------h-g-f-g-h---------- ------------h-g-h------------ --------------h--------------