在本文中,我们将学习如何使用星号和空格打印图案 G。给定一个数字 n,我们将编写一个程序,在 n 行或列上打印图案 G。
例子:
输入:7
输出:
***
*
*
* ***
* *
* *
***
输入:9
输出:
*****
*
*
*
* ***
* *
* *
* *
*****
在这个程序中,我们使用了简单的行迭代逻辑来创建模式 G。请看下面的图片,它以二维矩阵的形式表示模式 G,其中 mat[i][j] = 'ij':
如果我们尝试用(行、列)矩阵分析这幅图,圆圈表示图案 G 中星星的位置,我们将了解这些步骤。这里我们按列执行操作。因此,对于第一行星星,我们设置第一个 if 条件,其中行位置为 0 和 (n-1) 的行不会获得星星,而从 1 到 (n-1) 的所有其他行将获得星星。同样,对于第二、第三和第四列,我们希望行 = 0 和行 = (n-1) 位置的星星。其他步骤是不言自明的,可以从图中行和列的位置来理解。
以下是上述想法的实现:
# Python program to print pattern G
def Pattern(line):
pat=""
for i in range(0,line):
for j in range(0,line):
if ((j == 1 and i != 0 and i != line-1) or ((i == 0 or
i == line-1) and j > 1 and j < line-2) or (i == ((line-1)/2)
and j > line-5 and j < line-1) or (j == line-2 and
i != 0 and i != line-1 and i >=((line-1)/2))):
pat=pat+"*"
else:
pat=pat+" "
pat=pat+"
"
return pat
# Driver Code
line = 7
print(Pattern(line))
输出:
***
*
*
* ***
* *
* *
***
时间复杂度: O(n 2 ),其中 n 表示给定的输入。
辅助空间: O(1),不需要额外的空间,因此为常数。