以金字塔、正方形和菱形等不同格式显示星形图案非常有用 常见于基础编程和逻辑构建。我们见过几颗星星 学习编程中的循环语句时的数字模式问题。在本文中, 我们将看到如何在 C++ 中打印空心直角三角形星形图案。
在此程序中,我们采用行号 n,这将为 n 个数创建一个星形图案 线。让我们看一下相同的示例。
右空心星形图案
*
* *
* *
* *
* *
* *
* * * * * * *
在此示例中,有 n 行。每行都有几颗星星,在开头有 是空格。除第一行和最后一行外,该行中只有两颗星,并且 其间有空格。第一行仅包含一颗星,最后一行 包含 n 个星星。
每一行有 n – i 个空格,之后打印星星。 对于完整的右对齐三角形,我们连续打印星星。但我们在这里打印 对于第一个和最后一个位置,否则会打印空格以使其空心。在决赛中 行,它会打印所有星星来制作边框。
算法
- 读取 n 作为输入
- 对于从 1 到 n 的 i,执行
- 对于范围从 1 到 n - i 的 j,执行以下操作
- 输入空格
- 结束
- 对于从 1 到 i 的 k,执行
- 如果 i 与 n 不同,则
- 如果 k = 1 或 k = i,则
- 显示“*”
- 否则
- 显示空白
- 如果结束
- 如果 k = 1 或 k = i,则
- 否则
- 显示“*”
- 如果结束
- 如果 i 与 n 不同,则
- 结束
- 将光标移至下一行
- 对于范围从 1 到 n - i 的 j,执行以下操作
- 结束
由于在线编译器的一些限制,我们在代码处添加了点而不是空格。 开始。否则,它有时会截断该行,并且输出会变得不正确。
示例
#include <iostream>
using namespace std;
void solve( int n ){
for ( int i = 1; i <= n; i++ ) {
for ( int j = 1; j <= n - i; j++ ) {
cout << ".";
}
for ( int k = 1; k <= i; k++ ) {
if ( i != n ) {
if ( k == 1 || k == i ) {
cout << "*";
} else {
cout << " ";
}
} else {
cout << "*";
}
}
cout << "\n";
}
}
int main(){
int n = 7;
cout << "Hollow Star Pattern for " << n << " lines." << endl;
solve( n );
}
输出
Hollow Star Pattern for 7 lines.
......*
.....**
....* *
...* *
..* *
.* *
*******
输出(n = 18)
Hollow Star Pattern for 18 lines.
.................*
................**
...............* *
..............* *
.............* *
............* *
...........* *
..........* *
.........* *
........* *
.......* *
......* *
.....* *
....* *
...* *
..* *
.* *
******************
结论
星形模式易于实现,有助于研究编程中的循环概念。 在一些文章中,我们看到了打印金字塔、盒子等星形图案的技术 钻石。在本文中,我们了解了如何在 C++ 中显示空心金字塔。它需要 行数 n,然后显示右对齐的空心三角星形图案。每行都有 几个空格后有几颗星星。空格用于对齐(由于限制 对于在线编译器,我们使用点而不是空格进行对齐)。对于最后一行,它 打印所有星星,但对于其他行,它仅在第一行和最后一行的位置打印星星 柱子。这样就形成了空心三角形。