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 行的星號和空格。使用此概念,我們可以輕鬆修改公式以顯示其他圖案。
廣告