展示不同形狀的星星圖案,如金字塔、正方形和菱形,是一種
基本程式設計和邏輯開發的常見部分。我們面臨各種問題 當我們研究程式設計中的循環語句時,涉及星星和數字模式。 本文將示範如何使用星號列印 X 或十字。我們將看到相同的兩種方法。第一個有點複雜,但下一個 方法效率很高。
* * * * * * * * * * * * * * * * *
對於此模式,行數為 n = 5。這是針對上半部的。總共 X 模式有 2n – 1
讓我們來看看如何使用以下表格來實現這一點−
行號 | Star Count | 的中文翻譯為:星星數量 | 剩餘空間 | Space Between | 的中文翻譯為:間距 | #描述 | |
---|---|---|---|---|---|---|---|
1 | 的翻譯是:1 | 2 | 0 | 7 | 當 i = n 時,列印一顆星,否則列印 2。左邊的空格為 (i – 1),空格之間為 2(n – i) - 1 | ||
2 | 2 | 1 | 的翻譯是:1 | 5 | |||
3 | 2 | 2 | 3 | ||||
4 | 的中文翻譯為:4 | 2 | 3 | 1 | |||
5 | 的中文翻譯為:5 | 1 | 的翻譯是:1 | 4 | 的中文翻譯為:4 | - | 的中文翻譯為:- |
6 | 2 | 3 | 1 | 左邊的星星遞減,如 n - (i - n) - 1 = 2n - i - 1。空格的數量將遵循:2 * (i - n) - 1 | |||
7 | 2 | 2 | 3 | ||||
8 | 2 | 1 | 的翻譯是:1 | 5 | |||
9 | 的翻譯為:9 | 2 | 0 | 7 |
#include <iostream> using namespace std; void solve( int n ){ for ( int i = 1; i <= 2*n - 1; i++ ) { if ( i <= n ) { for ( int j = 1; j <= i - 1; j++ ) { cout << ". "; } cout << "* "; if ( i != n ) { for ( int j = 1; j <= 2 * (n - i) - 1; j++ ) { cout << " "; } cout << "* "; } } else { for ( int j = 1; j <= (2 * n) - i - 1; j++ ) { cout << ". "; } cout << "* "; for ( int j = 1; j <= 2 * (i - n) - 1; j++ ) { cout << " "; } cout << "* "; } cout << "\n"; } } int main(){ int n = 8; cout << "X Star Pattern for " << n << " lines." << endl; solve( n ); }
X Star Pattern for 8 lines. * * . * * . . * * . . . * * . . . . * * . . . . . * * . . . . . . * * . . . . . . . * . . . . . . * * . . . . . * * . . . . * * . . . * * . . * * . * * * *
X Star Pattern for 10 lines. * * . * * . . * * . . . * * . . . . * * . . . . . * * . . . . . . * * . . . . . . . * * . . . . . . . . * * . . . . . . . . . * . . . . . . . . * * . . . . . . . * * . . . . . . * * . . . . . * * . . . . * * . . . * * . . * * . * * * *
透過考慮一個網格,可以解決相同的問題,並且從這個網格中,我們可以計算出 星星被印製的公式以及空格被印製的位置。
* | * | |||||||
* | * | |||||||
* | * | |||||||
* | * | |||||||
* | ||||||||
* | * | |||||||
* | * | |||||||
* | * | |||||||
* | * |
从上面的网格中,很容易理解,星星只会在列中放置 数字与行号(对角线)相同,列号为 (2n + 1 – i)
#include <iostream> using namespace std; void solve( int n ){ int m = 2*n - 1; for ( int i = 1; i <= m; i++ ) { for ( int j = 1; j <= m; j++ ) { if (j == i || j == (m + 1 - i)) cout << "* "; else cout << ". "; } cout << endl; } } int main(){ int n = 6; cout << "X Star Pattern for " << n << " lines." << endl; solve( n ); }
X Star Pattern for 6 lines. * . . . . . . . . . * . * . . . . . . . * . . . * . . . . . * . . . . . * . . . * . . . . . . . * . * . . . . . . . . . * . . . . . . . . . * . * . . . . . . . * . . . * . . . . . * . . . . . * . . . * . . . . . . . * . * . . . . . . . . . *
X Star Pattern for 8 lines. * . . . . . . . . . . . . . * . * . . . . . . . . . . . * . . . * . . . . . . . . . * . . . . . * . . . . . . . * . . . . . . . * . . . . . * . . . . . . . . . * . . . * . . . . . . . . . . . * . * . . . . . . . . . . . . . * . . . . . . . . . . . . . * . * . . . . . . . . . . . * . . . * . . . . . . . . . * . . . . . * . . . . . . . * . . . . . . . * . . . . . * . . . . . . . . . * . . . * . . . . . . . . . . . * . * . . . . . . . . . . . . . *
星形模式使用简单,对于学习编程循环思想很有用。这 文章演示了如何使用 C++ 显示左和右半菱形图案 右对齐的半菱形。拍摄后,X 或十字图案将使用星号显示 考虑n行计数。为此,我们提供了两种方法。一聘 填充和空白空间,而另一个则利用网格计算。而不是添加 空格,我们添加了点。如果没有,他们偶尔会从输出中删除空格。
以上是C++程式列印X星型圖案的詳細內容。更多資訊請關注PHP中文網其他相關文章!