Montrer différentes formes de motifs d'étoiles, telles que des pyramides, des carrés et des losanges, est un
Parties communes de la programmation de base et du développement logique. nous sommes confrontés à divers problèmes Lorsque nous examinons les instructions de boucle en programmation, des étoiles et des modèles numériques sont impliqués. Cet article montre comment imprimer un X ou une croix à l'aide d'un astérisque.Nous verrons les deux mêmes méthodes. Le premier est un peu compliqué, mais le suivant La méthode est très efficace.
* * * * * * * * * * * * * * * * *
Pour ce mode, le nombre de lignes est n = 5. C'est pour la moitié supérieure. Le total des modèles X est 2n – 1
Voyons comment procéder en utilisant le formulaire ci-dessous−
numéro de ligne | La traduction chinoise deStar Count | est :Nombre d'étoiles | Espace restant | La traduction chinoise deSpace Between | est :Spacing | Description | |
---|---|---|---|---|---|---|---|
1 | est :1 | 2 | 0 | 7 | Quand i = n, imprimez une étoile, sinon imprimez 2. L'espace de gauche est (i – 1) et l'espace entre les espaces est 2(n – i) - 1 | ||
2 | 2 | La traduction de1 | est :1 | 5 | |||
3 | 2 | 2 | 3 | ||||
4 | est :4 | 2 | 3 | 1 | |||
5 | est :5 | La traduction de1 | est :1 | La traduction chinoise de4 | est :4 | La traduction chinoise de- | est :- |
6 | 2 | 3 | 1 | Les étoiles de gauche sont décroissantes, comme n - (i - n) - 1 = 2n - i - 1. Le nombre d'espaces suivra : 2* (i - n) - 1 | |||
7 | 2 | 2 | 3 | ||||
8 | 2 | La traduction de1 | est :1 | 5 | |||
9 | se traduit par :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. * * . * * . . * * . . . * * . . . . * * . . . . . * * . . . . . . * * . . . . . . . * * . . . . . . . . * * . . . . . . . . . * . . . . . . . . * * . . . . . . . * * . . . . . . * * . . . . . * * . . . . * * . . . * * . . * * . * * * *
Le même problème peut être résolu en considérant une grille, et à partir de cette grille, on peut calculer La formule où les étoiles sont imprimées et où les espaces sont imprimés.
* | * | |||||||
* | * | |||||||
* | * | |||||||
* | * | |||||||
* | ||||||||
* | * | |||||||
* | * | |||||||
* | * | |||||||
* | * |
从上面的网格中,很容易理解,星星只会在列中放置 数字与行号(对角线)相同,列号为 (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行计数。为此,我们提供了两种方法。一聘 填充和空白空间,而另一个则利用网格计算。而不是添加 空格,我们添加了点。如果没有,他们偶尔会从输出中删除空格。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!