
展示不同形状的星星图案,如金字塔、正方形和菱形,是一种
基本编程和逻辑开发的常见部分。我们面临各种问题 当我们研究编程中的循环语句时,涉及到星星和数字模式。 本文将演示如何使用星号打印 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中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号