C++程序 打印“G”字形图案

C++程序 打印“G”字形图案

在本文中,我们将学习如何使用星号和空格打印出“G”字形图案。给定一个数字n,我们将编写一个程序在n行或n行上打印出“G”字形图案。

例子:

输入:7
输出:
  ***  
 *     
 *     
 * *** 
 *   * 
 *   * 
  ***  

输入:9
输出:
  *****  
 *       
 *       
 *       
 *   *** 
 *     * 
 *     * 
 *     * 
  *****  

在本程序中,我们使用了迭代行的简单逻辑来创建“G”字形图案。请看下面的图像,它将“G”字形图案表示为一个二维矩阵,其中mat[i][j] = ‘ij’:

C++程序 打印“G”字形图案

“G”字形图案的图形表示

如果我们使用(行,列)矩阵分析这幅图画,圆圈表示“G”字形图案中星号的位置,我们将学习这些步骤。这里我们按列执行操作。因此,对于第一行的星号,我们设置了第一个if条件,其中行位置为0和(n-1)将不会得到星号,而所有其他行从1到 (n-1) 将得到星号。同样地,对于第二、第三和第四列,我们希望星号位于row = 0和row = (n-1)的位置。其他步骤都是不言自明的,并且可以从图表中的行列位置理解。

例子:

// C程序打印“G”图案
#include <stdio.h>
  
void pattern(int line)
{
    int i, j;
    for (i = 0; i < line; i++) {
        for (j = 0; j < line; j++) {
            if ((j == 1 && i != 0 && i != line - 1)
                || ((i == 0 || i == line - 1) && j > 1
                    && j < line - 2)
                || (i == ((line - 1) / 2) && j > 2
                    && j < line - 1)
                || (j == line - 2 && i != 0
                    && i >= ((line - 1) / 2)
                    && i != line - 1))
                printf("*");
            else
                printf(" ");
        }
        printf("\n");
    }
}
int main()
{
    int line = 7;
    pattern(line);
    return 0;
}  

输出

  ***  
 *     
 *     
 * *** 
 *   * 
 *   * 
  ***  

时间复杂度:O(n 2),其中n表示给定的输入。

辅助空间:O(1),不需要额外的空间,因此它是一个常数。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例