Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình Python in mẫu Rangoli chữ cái


Cho số n (1 ≤ n ≤ 26). In mẫu Rangoli kích thước n x n dùng chữ cái từ 'a' đến chữ cái thứ n. Mẫu đối xứng ngang và dọc, dùng dấu '-' làm khoảng trống.

Ví dụ n = 5 (in ra 9 dòng):

--------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--------

Thuật toán

  • Nửa trên: dòng i từ n-1 xuống 0. In 2*i dấu '-', rồi chuỗi chữ cái giảm từ n-1 đến i, rồi tăng từ i đến n-1, cuối 2*i dấu '-'.
  • Nửa dưới: dòng i từ 1 đến n-1, logic tương tự.

Ví dụ mã nguồ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 / Đầu ra

Input:  8
Output: (mẫu Rangoli 15x15 từ a-h)