使用字母列印Rangoli圖案的Python程式
假設我們有一個數字n。我們必須建立一個n x n大小的字母Rangoli圖案。n必須在1到26之間,當n為26時,它將從a開始,到z結束。
因此,如果輸入是5,則輸出將是
--------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--------
為了解決這個問題,我們將遵循以下步驟:
- 對於i從n-1到0遞減,執行:
- 對於j從0到i-1,執行:
- 列印"--"
- 對於j從n-1到i+1遞減,執行:
- 列印ASCII值為j+97的字元,並在末尾列印額外的"-"
- 對於j從i到n-1,執行:
- 如果j不等於n-1,則:
- 列印ASCII值為j+97的字元,並在末尾列印額外的"-"
- 否則:
- 列印ASCII值為j+97的字元
- 如果j不等於n-1,則:
- 對於j從0到2*i - 1,執行:
- 在末尾列印"-"
- 轉到下一行
- 對於j從0到i-1,執行:
- 對於i從1到n-1,執行:
- 對於j從0到i,執行:
- 列印"--"
- 對於j從n-1到i+1遞減,執行:
- 列印ASCII值為j+97的字元,並在末尾列印額外的"-"
- 對於j從i到n-1,執行:
- 如果j不等於n-1,則:
- 列印ASCII值為j+97的字元,並在末尾列印額外的"-"
- 否則:
- 列印ASCII值為j+97的字元
- 如果j不等於n-1,則:
- 對於j從0到2*i - 1,執行:
- 在末尾列印"-"
- 轉到下一行
- 對於j從0到i,執行:
示例
讓我們看下面的實現來更好地理解
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)
輸入
8
輸出
--------------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--------------
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP