Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình Python để in mẫu rangoli bằng bảng chữ cái

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
    • đố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 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
    • đố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

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