使用字母打印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--------------
广告