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),执行
      • 显示星号 ( * )
    • 结束循环
    • 将光标移动到下一行
  • 结束循环

由于我们的在线编译器有时会截断行并删除每行之前和之后空格,因此我们通过在空格的位置放置点 (.) 来进行测试。

示例

#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 行的星号和空格。使用此概念,我们可以轻松修改公式以显示其他图案。

更新于: 2022年12月13日

673 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告