Python使用字母打印rangoli模式的程序
假设我们有一个数字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的范围内,递减1,请执行以下操作:
- 对于j在0到i-1的范围内,请执行以下操作:
- 打印“- -”。
- 对于j在n-1到i+1的范围内,请递减1,执行以下操作:
- 打印ASCII为j+97的字符,并在末尾打印额外的“-”。
- 对于j在i到n-1的范围内,请执行以下操作:
- 如果j与n-1不相同,则:
- 打印ASCII为j+97的字符,并在末尾打印额外的“-”。
- 否则,
- 打印ASCII为j+97的字符。
- 对于j在0到2*i-1的范围内,请执行以下操作:
- 在末尾打印“-”。
- 去下一行
- 对于j在0到i-1的范围内,请执行以下操作:
- 对于i在1到n-1的范围内,请执行以下操作:
- 对于j在0到i的范围内,请执行以下操作:
- 打印“- -”。
- 对于j在n-1到i+1的范围内,请递减1,执行以下操作:
- 打印ASCII为j+97的字符,并在末尾打印额外的“-”。
- 对于j在i到n-1的范围内,请执行以下操作:
- 如果j与n-1不相同,则:
- 打印ASCII为j+97的字符,并在末尾打印额外的“-”。
- 否则,
- 打印ASCII为j+97的字符。
- 对于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--------------