Python 程序打印图案“G”(Python Program to print the pattern ‘G’)

        在本文中,我们将学习如何使用星号和空格打印图案 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),不需要额外的空间,因此为常数。

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值