C++程序打印镜像上三角星形图案
在学习编程时,显示星形图案可以让循环的概念更容易理解。星形图案是各种使用星号创建实心或空心三角形或菱形图案的设计。本文将演示一个 C++ 右对齐的镜像上三角形图案。
下表将包含我们创建用于打印星号的逻辑。下表可以帮助我们理解。
* * * * * * * * * * * * * * * * * * * * *
此示例中有六行。所以假设 n = 6。每行 I 都有与星星和填充相关的空空格。为了展示图案,我们必须创建星星和空区域之间的关系。
行号 (i) | 星号数量 (j) | 空格 (k) |
---|---|---|
1 | 6 | 0 |
2 | 5 | 1 |
3 | 4 | 2 |
4 | 3 | 3 |
5 | 2 | 4 |
6 | 1 | 5 |
在这个问题中,星号的数量遵循 (n – i + 1),但空格正在逐渐增加。它遵循 (i – 1)。为了实现这一点,我们需要另一个仅用于空格的循环,然后再打印星号。
算法
- 读取行数作为输入 n
- 对于 i 从 1 到 n,执行
- 对于 k 从 1 到 (i - 1),执行
- 显示空格 (' ')
- 结束循环
- 对于 j 从 1 到 (n – i + 1),执行
- 显示星号 ( * )
- 结束循环
- 将光标移动到下一行
- 对于 k 从 1 到 (i - 1),执行
- 结束循环
由于我们的在线编译器有时会截断行并删除每行之前和之后空格,因此我们通过在空格的位置放置点 (.) 来进行测试。
示例
#include <iostream> using namespace std; void solve( int n ){ int i, j, k; for( i = 1; i <= n; i++ ) { for( k = 1; k <= (i - 1); k++ ) { cout << ". "; } for( j = 1; j <= (n - i + 1); j++ ) { cout << "* "; } cout << endl; } } int main(){ int n = 10; cout << "Mirrored Upper-Left Star Pattern using " << n << " number of lines:" << endl; solve( n ); }
输出
Mirrored Upper-Left Star Pattern using 10 number of lines: * * * * * * * * * * . * * * * * * * * * . . * * * * * * * * . . . * * * * * * * . . . . * * * * * * . . . . . * * * * * . . . . . . * * * * . . . . . . . * * * . . . . . . . . * * . . . . . . . . . *
输出 (对于 n = 20)
Mirrored Upper-Left Star Pattern using 20 number of lines: * * * * * * * * * * * * * * * * * * * * . * * * * * * * * * * * * * * * * * * * . . * * * * * * * * * * * * * * * * * * . . . * * * * * * * * * * * * * * * * * . . . . * * * * * * * * * * * * * * * * . . . . . * * * * * * * * * * * * * * * . . . . . . * * * * * * * * * * * * * * . . . . . . . * * * * * * * * * * * * * . . . . . . . . * * * * * * * * * * * * . . . . . . . . . * * * * * * * * * * * . . . . . . . . . . * * * * * * * * * * . . . . . . . . . . . * * * * * * * * * . . . . . . . . . . . . * * * * * * * * . . . . . . . . . . . . . * * * * * * * . . . . . . . . . . . . . . * * * * * * . . . . . . . . . . . . . . . * * * * * . . . . . . . . . . . . . . . . * * * * . . . . . . . . . . . . . . . . . * * * . . . . . . . . . . . . . . . . . . * * . . . . . . . . . . . . . . . . . . . *
结论
在每种编程语言中,嵌套循环都是使用星形图案来教授的。本文以示例形式显示了当提供行数时显示的右上三角形。将显示具有每行这么多星号的行数。星号前面有空格以帮助对齐(由于一些在线编译器的限制,我们打印点而不是空格)。您可以通过在句子之间留出空隙在本地对其进行测试。它还演示了如何使用表格技术确定第 i 行的星号和空格。使用此概念,我们可以轻松修改公式以显示其他图案。
广告