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 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告