C++程序 打印倒立的空心星形金字塔图案

C++程序 打印倒立的空心星形金字塔图案

给定值 R (行数),编写一个C++程序,使用星号和空格打印倒立的空心金字塔。

例子:

输入: R = 5

输出:

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

输入: R = 10

输出:

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

算法:

  • 首先,将行数作为输入。
  • 下一步是实现嵌套循环以打印该图案。
  • 需要一个维护空格(sp)的变量来保持开始处的空格。
  • 通过以下公式计算最后一列: Last Column = (length _of_row * 2 – (2 * Current_row – 1))
  • 在第一列和最后一列打印星号( “*” ),然后进入下一行。

下面是实现上述方法的C++程序:

// C++ program to Print a Inverted
// hollow Star Pyramid
#include <bits/stdc++.h>
using namespace std;
 
void print_patt(int R)
{
  // To iterate through the rows
  for(int i = 1; i <= R; i++)
  {
    // To print the  beginning spaces
    for(int sp = 1;
            sp <= i - 1 ; sp++)
    {
      cout << " ";
    }
       
    // Iterating from ith column to
    // last column (R*2 - (2*i - 1))
    int last_col = (R * 2 - (2 * i - 1));
         
    // To iterate through column
    for(int j = 1; j <= last_col; j++)
    {
      // To Print all star for first
      // row (i==1) ith column (j==1)
      // and for last column
      // (R*2 - (2*i - 1))
      if(i == 1)
        cout << "*";
      else if(j == 1)
        cout << "*";
      else if(j == last_col)
        cout << "*";
      else
        cout << " ";
    }
         
    // After printing a row proceed
    // to the next row
    cout << "\n";
  }
}
 
// Driver code
int main()
{
  // Number of rows
  int R = 5;
  print_patt(R);
  return 0;
}  

输出

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

时间复杂度: O(R*last_col),其中R表示行数,last_col表示最后一列。

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例