C++程序 打印金字塔图案
在本文中,我们将讨论以下用C++编写的顶部图案程序,如星号*、数字或其他字符等。
C++中的金字塔图案
- 简单的金字塔图案
- 180°旋转后的简单金字塔图案
- 倒金字塔图案
- 180°旋转后的倒金字塔图案
- 三角形图案
- 倒三角形图案
- 数字金字塔图案
- 不重新分配数字金字塔图案
- 连续数字金字塔图案180°旋转后的图案
- 回文三角形图案
- 字母金字塔图案
- 连续字母金字塔图案
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中打印金字塔图案的程序