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),執行
- 顯示星號 ( * )
- 結束迴圈
- 將游標移動到下一行
- 對於 k 從 1 到 (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 行的星號和空格。使用此概念,我們可以輕鬆修改公式以顯示其他圖案。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP