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行的星號和空格。我們可以很容易地修改公式,使用這個想法來演示其他的圖案。
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP