C++程式列印向上三角星形圖案


學習程式設計時,顯示星形圖案可以更容易地理解迴圈的概念。星形圖案是各種使用星號(*)建立實心或空心三角形或菱形圖案的設計。本文將演示一個居中對齊的向上三角形的C++實現。

下表將包含我們建立的列印星號的邏輯。下表可以幫助我們理解。

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

這裡顯示了7行。對於每一行i,都有i個星號。但是,每一行都有一些填充。星號也有固定的填充。我們可以透過列印‘* ’(星號後跟一個空格)而不是隻列印‘*’來實現這一點。該表顯示了空格和星號的數量及其與i值的關係。

行號 (i) 星號數量 (j) 空格數量 (k)
1 1 6
2 2 5
3 3 4
4 4 3
5 5 2
6 6 1
7 7 0

這裡的星號數量遵循行號'i'。每一行都有(n – i)個空格。讓我們看看演算法來理解這個概念。

演算法

  • 讀取行數作為輸入n
  • 對於i從1到n,執行
    • 對於k從1到(n - i),執行
      • 顯示空格 (' ')
    • 結束迴圈
    • 對於j從1到i,執行
      • 顯示星號後跟一個空格 '* '
    • 結束迴圈
    • 游標移到下一行
  • 結束迴圈

由於我們的線上編譯器有時會截斷行並刪除每行前後的空格,因此我們正在透過在每行前放置點(.)來進行測試。

示例

#include <iostream>
using namespace std;
void solve( int n ){
   int i, j, k;
   for( i = 1; i <= n; i++ ) {
      for( k = 1; k <= (n - i); k++ ) {
         cout << ".";
      }
      for( j = 1; j <= i; j++ ) {
         cout << "* ";
      }
      cout << endl;
   }
}
int main(){
   int n = 10;
   cout << "Upward Star Pattern using " << n << " number of lines:" << endl;
   solve( n );
}

輸出

Upward Star Pattern using 10 number of lines:
.........* 
........* * 
.......* * * 
......* * * * 
.....* * * * * 
....* * * * * * 
...* * * * * * * 
..* * * * * * * * 
.* * * * * * * * * 
* * * * * * * * * * 

輸出 (對於 n = 15)

Upward Star Pattern using 15 number of lines:
..............* 
.............* * 
............* * * 
...........* * * * 
..........* * * * * 
.........* * * * * * 
........* * * * * * * 
.......* * * * * * * * 
......* * * * * * * * * 
.....* * * * * * * * * * 
....* * * * * * * * * * * 
...* * * * * * * * * * * * 
..* * * * * * * * * * * * * 
.* * * * * * * * * * * * * * 
* * * * * * * * * * * * * * * 

結論

巢狀迴圈在所有程式語言中都使用星形圖案來解釋。在本文中,我們討論瞭如何列印居中對齊的向上三角形圖案。為了使對齊更容易,星號前有空格(由於線上編譯器的一些限制,我們列印點而不是空格)。您可以透過在句子中間插入空格來在本地測試它們。這也表明可以使用表格方法來識別第i行的星號和空格。我們可以很容易地修改公式,使用這個想法來演示其他的圖案。

更新於: 2022年12月13日

491 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告