C++程序 打印左半金字塔图案

C++程序 打印左半金字塔图案

在这里,我们将使用两种方法来构建一个C++程序以打印金字塔图案的左半部分。即:

  1. 使用 for循环
  2. 使用 while循环

1. 使用for循环

输入:

rows = 5

输出:

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

首先,第一个for循环用于识别要打印的行数,第二个for循环用于识别要打印的列数。这里的值将根据第一个for循环而改变。如果j大于i,那么它将打印输出,否则打印空格。

// C++程序,使用for循环打印简单的金字塔图案的180度旋转
#include <iostream>
using namespace std;
 
int main()
{
    int rows = 5;
 
    // 第一个for循环用于识别要打印的行数
    for (int i = rows; i > 0; i--) {
        // 第二个for循环用于识别要打印的列数,这里的值将根据第一个for循环而改变
        for (int j = 0; j <= rows; j++) {
            // 如果j大于i,那么它将打印输出,否则打印空格
            if (j >= i) {
                cout << "*";
            }
            else {
                cout << " ";
            }
        }
        cout << "\n";
    }
    return 0;
}

输出:

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

时间复杂度: O(n 2)

这里的n是要打印的行数。

辅助空间: O(1)

因为使用了恒定的额外空间。

2. 使用while循环

输入:

rows = 5

输出:

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

while循环在条件成立时一直检查该条件。如果条件为真,则进入循环并执行语句。

// C++程序,使用while循环打印简单的金字塔图案的180度旋转
#include <iostream>
using namespace std;
 
int main()
{
    int i = 0, j = 0, sp = 0;
    int rows = 5; 
    // while循环在给定的条件为假之前一直检查该条件
    while (i < rows) {
 
        // 第二个while循环用于打印空格
        while (sp < (rows - i - 1)) {
            cout << "  ";
            sp++;
        }
 
        // 将sp值分配为0,因为我们需要从开始运行sp
        sp = 0;
        // 此循环将打印模式
        while (j <= i){
            cout << "* ";
            j++;
        }
        j = 0;
        i++;
        cout << "\n";
    }
    return 0;
}

输出:

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

时间复杂度: O(n2),其中n是要打印的行数。

空间复杂度: O(1)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例