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

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

在本文中,我们将讨论以下用C++编写的顶部图案程序,如星号*、数字或其他字符等。

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

C++中的金字塔图案

  1. 简单的金字塔图案
  2. 180°旋转后的简单金字塔图案
  3. 倒金字塔图案
  4. 180°旋转后的倒金字塔图案
  5. 三角形图案
  6. 倒三角形图案
  7. 数字金字塔图案
  8. 不重新分配数字金字塔图案
  9. 连续数字金字塔图案180°旋转后的图案
  10. 回文三角形图案
  11. 字母金字塔图案
  12. 连续字母金字塔图案

C++程序打印图案和金字塔

1. C++中的简单金字塔图案

方法1: 使用for循环打印简单的金字塔图案

//C++代码演示星型图案
#include <iostream>
using namespace std;
 
//演示打印金字塔图案的函数
void pypart(int n)
{
    //外循环控制行数
    //在这种情况下,n表示输入的行数
    for (int i = 0; i < n; i++) {
 
        //内循环控制列数
        //值根据外循环而变化
        for (int j = 0; j <= i; j++) {
 
            //打印星号
            cout << "* ";
        }
 
        //每行结束后输出换行符
        cout << endl;
    }}
 
//驱动函数
int main()
{
    int n = 5;
    pypart(n);
    return 0;
}  

输出结果

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

时间复杂度:O(n^2),其中n是输入的行数。

辅助空间:O(1)。

方法2: 使用while循环打印上面的图案

//C++代码演示星型图案
#include <iostream>
using namespace std;
 
//演示打印金字塔图案的函数
void pypart(int n)
{
    //外循环控制行数
    //在这种情况下,n表示输入的行数
    int i = 0, j = 0;
    while (i < n) {
 
        //内循环控制列数
        //值根据外循环而变化
        while (j <= i) {
 
            //打印星号
            cout << "* ";
            j++;
        }
        j = 0; //我们必须重置j的值,以便它可以从开头开始打印*,并且等于i。 
        i++;
        //每行结束后输出换行符
        cout << endl;
    }}
 
//主函数
int main()
{
    int n = 5;
    pypart(n);
    return 0;
}  

输出结果

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

方法3: 使用递归打印上述图案

// C++ code to demonstrate pattern printing
#include <iostream>
using namespace std;
 
// Function to demonstrate printing pattern
void pypart2(int n)
{
    int i = n, j, k;
    while (i > 0) {
        j = n - i; // number of spaces
        k = 0;
        while (j > 0) {
            cout << "  ";
            j--;
        }
        while (k < i) {
            cout << "* ";
            k++;
        }
        i--;
        cout << endl;
    }
}
 
// Driver Function
int main()
{
    int n = 5;
    pypart2(n);
    return 0;
}  

输出

* * * * * 
  * * * * 
    * * * 
      * * 
        *
// C++ code to demonstrate star pattern
#include <iostream>
using namespace std;
 
// Function to demonstrate printing pattern
void pypart2(int n)
{
    // number of spaces
    int k = 2 * n - 2;
 
    // Outer loop to handle number of rows
    // n in this case
    int i = n, j = 0;
    while (i > 0) {
        j = 0;
        // Inner loop to handle number spaces
        // values changing acc. to requirement
        while (j < n - i) {
            cout << "  ";
            j++;
        }
 
        // Decrementing k after each loop
        k = k - 2;
 
        j = 0;
        // Inner loop to handle number of columns
        // values changing acc. to outer loop
        while (j < i) {
            // Printing stars
            cout << "* ";
            j++;
        }
 
        // Ending line after each row
        cout << endl;
        i--;
    }
}
 
// Driver Code
int main()
{
    int n = 5;
 
    // Function Call
    pypart2(n);
    return 0;
}  

输出

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

5. C++中的三角形图案

方法1: 使用for循环打印给定的模式。

// C++代码演示星形模式
# include
using namespace std;
 
//函数演示打印图案
void pypart2(int n)
{
    //空格数
    int i, j, k = n;
 
    //外循环处理行数
    //在这种情况下为n
    for (i = 1; i<= n; i++) {

        //列的内循环
        for (j = 1; j<= n; j++) {

            //用于打印星形图案的条件
            if (j>= k)
                cout << "* ";
            else
                cout << " ";
        }
        k--;
        cout << "\n";
    }
}
 
//主驱动程序
int main()
{
    int n = 5;
    //函数调用
    pypart2(n);
    return 0;
}  

输出

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

6. 在C++中打印数字金字塔图案

方法1: 使用for循环打印数字金字塔图案。

// C++代码,演示如何打印数字图案
# include <iostream>
using namespace std;
 
// 获取打印数字图案
void numpat(int n)
{
    // 初始化开始数字
    int num = 1;
 
    // 外部循环处理行数
    for (int i = 0; i < n; i++) {
 
        // 内部循环处理列数,值根据外部循环变化而变化
        for (int j = 0; j <= i; j++)
            cout << num << " ";
 
        // 在每行结束后增加数字
        num = num + 1;
 
        // 每行结束后换行
        cout << endl;
    }
}
 
// 主函数
int main()
{
    int n = 5;
 
    // 调用函数
    numpat(n);
    return 0;
}  

输出

1 
2 2 
3 3 3 
4 4 4 4 
5 5 5 5 5 

方法2: 使用while循环打印数字金字塔图案。

// 在C++中打印图案
# include <iostream>
using namespace std;
 
// 获取打印的图案
void pypart(int n)
{
    int i = 1, j = 0;
    while (i <= n) {
        while (j <= i - 1) {
            cout << i << " ";
            j++;
        }
        j = 0;
        i++;
        cout << endl;
    }
}
 
// 主函数
int main()
{
    int n = 5;
 
    // 调用函数
    pypart(n);
    return 0;
}  

输出

1 
2 2 
3 3 3 
4 4 4 4 
5 5 5 5 5 

7. 在C++中打印数字金字塔图案(不重新分配)

方法1: 在C++中使用for循环打印数字金字塔图案(不重新分配)。

// C++ code to demonstrate  printing
// alphabet pattern

# include <iostream>
using namespace std;

// Function to demonstrate printing pattern
void alpha_pattern(int n)
{
    // ASCII value of 'A' is 65
    int alphabet = 65;

    // outer loop to handle number of rows
    // n in this case
    for (int i = 0; i < n; i++) {
        // inner loop to handle number of columns
        for (int j = 0; j <= i; j++) {
            // printing character
            cout << char(alphabet) << " ";
            // incrementing alphabet value
            alphabet++;
        }
        // ending line after each row
        cout << endl;
    }
}

// Driver Code
int main()
{
    int n = 5;

    // Function Call
    alpha_pattern(n);
    return 0;
}  

Output

A 
B C 
D E F 
G H I J 
K L M N O 

方法1: 使用for循环打印给定的模式。

// C++代码演示字母模式的打印
# include
using namespace std;
 
//演示打印模式的函数
void alphabet(int n)
{
    //初始化对应' A '的值
    // ASCII值
    int num = 65;

    //外部循环,处理行数
    //在这种情况下是n
    for (int i = 0; i < n; i++) {

       //内部循环,处理列数
       //值随着外循环而变化
       for (int j = 0; j <= i; j++) {

           //显式转换为字符
           char ch = char(num);

           //打印char值
           cout << ch << " ";
       }

       //递增数字
       num = num + 1;

       //每行后完成一行
       cout << endl;
   }
}

//驱动函数
int main()
{
   int n = 5;
   alphabet(n);
   return 0;
}  

输出

A 
B B 
C C C 
D D D D 
E E E E E 

方法2: 使用while循环打印上述模式。

// C++代码演示字母模式的打印
# include
using namespace std;
 
//演示打印模式的函数
void alphabet(int n)
{
    int i = 1, j = 0;

    // 分配A的ASCII值,即65
    int num = 65;

    //将ASCII值转换为字符,
    //现在我们的alpha变量
    //强制类型转换后的价值是A。
    char alpha = char(num);
    while (i <= n) {

        //alpha具有A值,它
        //随着alpha的增加或减少而改变。
        while (j <= i - 1) {
            cout << alpha << " ";
            j++;
        }

        //增加alpha值,以便它可以
        //指向下一个字符
        alpha++;

        //我们必须重置j值,因此它可以
        //从开头开始打印等于*的数量
        j = 0;
        i++;

        //每行后完成一行
        cout << endl;
    }
}

//驱动代码
int main()
{
    int n = 5;

    // 函数调用
    alphabet(n);
    return 0;
}  

输出

A 
B B 
C C C 
D D D D 
E E E E E 

11.连续字母金字塔模式在C++中

方法1: 使用for循环打印上述模式。

// C++代码演示字母模式的打印
# include
using namespace std;
 
//演示打印模式的函数
void contalpha(int n)
{
    //初始化对应' A '的值
    // ASCII值
    int num = 65;

    //外部循环,处理行数
    //在这种情况下是n
    for (int i = 0; i < n; i++) {

       //内部循环,处理列数
       //值随着外循环而变化
       for (int j = 0; j <= i; j++) {

           //显式转换为字符
           char ch = char(num);

           //打印char值
           cout << ch << " ";

           //在每列中递增数字
           num = num + 1;
       }

       //每行后完成一行
       cout << endl;
   }
}

//驱动代码
int main()
{
   int n = 5;

   // 函数调用
   contalpha(n);
   return 0;
}  

输出

A 
B C 
D E F 
G H I J 
K L M N O 

方法2: 使用while循环打印上述模式。

// C++代码演示字母图案的打印
# include <iostream>
using namespace std;
 
// 演示打印图案的函数
void contalpha(int n)
{
    int i = 1, j = 0;
    int num = 65;
    char alpha = char(num);
    while (i <= n) {
        while (j <= i - 1) {
            cout << alpha << " ";
 
            // 在每次迭代中增加字母值,以便可以分配给下一个字符
            alpha++;
            j++;
        }
        j = 0;
        i++;
 
        // 每行结束后的行
        cout << endl;
    }
}
 
// 主函数
int main()
{
    int n = 5;
 
    // 函数调用
    contalpha(n);
    return 0;
}  

输出

A 
B C 
D E F 
G H I J 
K L M N O 

以下文章中讨论了使用Python语言打印图案–Python中打印金字塔图案的程序

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例