C++ 中打印 V 形和倒 V 形图案的程序

2025年5月13日 | 阅读 4 分钟

在本文中,我们将讨论在 C++ 中打印V形和倒 V形图案的程序,包括其实现、时间复杂度和空间复杂度。

1. 倒 V 形图案:给定值 n,打印倒 V 形图案。

示例 1

让我们举一个例子来说明 C++ 中的倒 V形图案。

输出

 
Enter the size of the pattern: 9
                               I
                            H     H
                        G            G
                     F                    F
                  E                           E
                D                               D
              C                                    C
             B                                        B
           A                                            A

说明

给定的 C++ 程序根据用户指定的大小生成并打印对称的字母倒 V形图案。内部循环管理间距和字符打印,而外部循环建立行。这是一个嵌套循环的例子。图案从代表 ASCII 值 65 ('A') 的字母开始,每行按字母顺序递减。字符两边都打印空格,以给人金字塔的印象。通过确认输入的大小为正数,程序验证输入的准确性,如果不是,则优雅地结束。为了创建对称性,每行动态修改内部间隙。由于使用了注释和描述性变量,代码易于理解。

2. V 形图案:给定值 n,打印 V 形图案。

示例 2

让我们举一个例子来说明 C++ 中的V形图案。

输出

 
Enter the size of the pattern: 9
         I                        I
         H                       H
          G                     G
           F                   F
             E                E
               D           D
                C        C
                  B    B
                     A   

说明

该程序使用用户输入生成字母金字塔图案。验证图案大小后,它逐行打印图案。每行在指定数量的引导空格(外部间隙)之后,以与当前行索引对应的 ASCII 字符开头,用于对齐。为了创建金字塔结构,如果适用,在同一行中两个相同的字符之间打印空格(内部间隙)。内部循环处理空格和字符,而外部循环遍历行以创建图案。程序使用 'A' 的 ASCII 值 65 动态计算字符。之后,输入验证通过确保用户输入正数来改进程序。

复杂度分析

  • 时间复杂度:O(n²)
    程序的嵌套循环导致 O(n^2) 的复杂度,因为内部循环与当前行的需求成比例地迭代,而外部循环运行 n 次。因此,总操作数与输入大小 n 之间的关系是二次方。
  • 辅助空间:O(1)
    程序对于 currentRow、outerSpace 和 innerSpace 等变量使用固定量的额外内存。无论输入量如何,辅助空间都保持不变,因为没有分配额外的数据结构。