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,執行
- 顯示星號後跟一個空格 '* '
- 結束迴圈
- 游標移到下一行
- 對於k從1到(n - 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行的星號和空格。我們可以很容易地修改公式,使用這個想法來演示其他的圖案。
廣告