Heim >Backend-Entwicklung >C++ >C++-Programm zum Drucken eines X-Sternmusters
Das Zeigen verschiedener Formen von Sternmustern, wie Pyramiden, Quadrate und Rauten, ist ein
Gemeinsame Teile der grundlegenden Programmierung und Logikentwicklung. Wir stehen vor verschiedenen Problemen Wenn wir Schleifenanweisungen in der Programmierung betrachten, sind Sterne und Zahlenmuster im Spiel. In diesem Artikel wird gezeigt, wie Sie ein X oder ein Kreuz mit einem Sternchen drucken.Wir werden die gleichen zwei Methoden sehen. Der erste ist etwas kompliziert, aber der nächste Die Methode ist sehr effizient.
* * * * * * * * * * * * * * * * *
Für diesen Modus beträgt die Anzahl der Zeilen n = 5. Dies ist für die obere Hälfte. Die Gesamtzahl der X-Muster beträgt 2n – 1
Sehen wir uns anhand des Formulars unten an, wie das geht −
Zeilennummer | Die chinesische Übersetzung vonStar Count | lautet:Anzahl der Sterne | Verbleibender Platz | Die chinesische Übersetzung vonSpace Between | lautet:Abstand | Beschreibung | |
---|---|---|---|---|---|---|---|
1 | ist:1 | 2 | 0 | 7 | Wenn i = n, drucken Sie einen Stern, andernfalls drucken Sie 2. Das Leerzeichen auf der linken Seite ist (i – 1) und das Leerzeichen zwischen den Leerzeichen ist 2(n – i) – 1 | ||
2 | 2 | Die Übersetzung von1 | ist:1 | 5 | |||
3 | 2 | 2 | 3 | ||||
4 | ist:4 | 2 | 3 | 1 | |||
5 | lautet:5 | Die Übersetzung von1 | ist:1 | Die chinesische Übersetzung von4 | ist:4 | Die chinesische Übersetzung von- | lautet:- |
6 | 2 | 3 | 1 | Die Sterne auf der linken Seite nehmen ab, z. B. n – (i – n) – 1 = 2n – i – 1. Die Anzahl der Leerzeichen ergibt sich aus: 2 * (i - n) - 1 | |||
7 | 2 | 2 | 3 | ||||
8 | 2 | Die Übersetzung von1 | ist:1 | 5 | |||
9 | wird übersetzt als: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. * * . * * . . * * . . . * * . . . . * * . . . . . * * . . . . . . * * . . . . . . . * * . . . . . . . . * * . . . . . . . . . * . . . . . . . . * * . . . . . . . * * . . . . . . * * . . . . . * * . . . . * * . . . * * . . * * . * * * *
Das gleiche Problem kann durch die Betrachtung eines Gitters gelöst werden, und aus diesem Gitter können wir berechnen Die Formel, in der die Sterne und die Leerzeichen gedruckt werden.
* | * | |||||||
* | * | |||||||
* | * | |||||||
* | * | |||||||
* | ||||||||
* | * | |||||||
* | * | |||||||
* | * | |||||||
* | * |
从上面的网格中,很容易理解,星星只会在列中放置 数字与行号(对角线)相同,列号为 (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行计数。为此,我们提供了两种方法。一聘 填充和空白空间,而另一个则利用网格计算。而不是添加 空格,我们添加了点。如果没有,他们偶尔会从输出中删除空格。
Das obige ist der detaillierte Inhalt vonC++-Programm zum Drucken eines X-Sternmusters. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!