C++程式列印空心直角三角形星號圖案
以不同的格式(例如金字塔、正方形和菱形)顯示星號圖案在基礎程式設計和邏輯構建中非常常見。在學習程式設計中的迴圈語句時,我們已經看到了幾個星號和數字圖案問題。在本文中,我們將瞭解如何在C++中列印空心直角三角形星號圖案。
在這個程式中,我們取行數n,這將建立n行星號圖案。讓我們看一個相同的例子。
空心直角星號圖案
*
* *
* *
* *
* *
* *
* * * * * * *
在這個例子中,共有n行。每一行都有幾個星號,開頭有一些空格。除第一行和最後一行外,每一行只有兩個星號,中間有一些空格。第一行只包含一個星號,最後一行包含n個星號。
對於每一行,都有n – i個空格,之後列印星號。對於完整的右對齊三角形,我們連續列印星號。但這裡我們只在第一列和最後一列列印星號,否則列印空格以使其為空心。最後一行列印所有星號以構成邊界。
演算法
- 讀取n作為輸入
- 對於i從1到n,執行
- 對於j從1到n - i,執行
- 輸出空格
- 結束迴圈
- 對於k從1到i,執行
- 如果i不等於n,則
- 如果k = 1或k = i,則
- 顯示'*'
- 否則
- 顯示空格
- 結束判斷
- 如果k = 1或k = i,則
- 否則
- 顯示'*'
- 結束判斷
- 如果i不等於n,則
- 結束迴圈
- 將游標移到下一行
- 對於j從1到n - i,執行
- 結束迴圈
由於線上編譯器的一些限制,我們在開頭添加了點而不是空格。否則,它有時會截斷該行,輸出結果將不正確。
示例
#include <iostream>
using namespace std;
void solve( int n ){
for ( int i = 1; i <= n; i++ ) {
for ( int j = 1; j <= n - i; j++ ) {
cout << ".";
}
for ( int k = 1; k <= i; k++ ) {
if ( i != n ) {
if ( k == 1 || k == i ) {
cout << "*";
} else {
cout << " ";
}
} else {
cout << "*";
}
}
cout << "\n";
}
}
int main(){
int n = 7;
cout << "Hollow Star Pattern for " << n << " lines." << endl;
solve( n );
}
輸出
Hollow Star Pattern for 7 lines. ......* .....** ....* * ...* * ..* * .* * *******
輸出 (n = 18)
Hollow Star Pattern for 18 lines. .................* ................** ...............* * ..............* * .............* * ............* * ...........* * ..........* * .........* * ........* * .......* * ......* * .....* * ....* * ...* * ..* * .* * ******************
結論
星號圖案易於實現,有助於學習程式設計中的迴圈概念。在一些文章中,我們已經看到列印金字塔、方框和菱形等星號圖案的技術。在本文中,我們瞭解瞭如何在C++中顯示空心金字塔。它獲取行數n,然後顯示右對齊的空心三角形星號圖案。每一行在一些空格之後都有幾個星號。空格用於對齊(由於線上編譯器的限制,我們使用點而不是空格進行對齊)。對於最後一行,它列印所有星號,但對於其他行,它只在第一列和最後一列的位置列印星號。因此形成了空心三角形。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP