c++ - 如何彼此相邻打印倒置的半星金字塔图案?
问题描述
我想在彼此旁边显示一个倒置的半星金字塔图案。这是所需的输出
这是我的代码:
#include <iostream>
using namespace std;
int main()
{
int n, x, y, k;
cout << "Enter Number of Rows: ";
cin >> n;
for (x = n; x >= 1; x--)
{
for (y = 1; y <= x; y++)
{
if (y <= x)
cout << "*";
else
cout << " ";
}
for (y = n; y >= 1; y--)
{
if (y <= x)
cout << "*";
else
cout << " ";
}
cout << "\n";
}
return 0;
}
这是我运行代码后得到的输出。 所需的行数是 10。运行我的代码后,输出与我预期的不同。请告诉我如何使它正确。谢谢你。
解决方案
我在问题中看到了一些对称性
- 对于 n 行,我们打印 2*n+1 个字符
- 对于第 y 行,如果 x 小于 ny 或大于 n+y,我们将打印一个星号
所以我用更复杂的if语句编写了一个双循环。我不得不调整if语句直到它起作用。
#include <iostream>
using namespace std;
int main()
{
int n, x, y;
cout << "Enter Number of Rows: ";
cin >> n;
for (y = 0; y < n; y++)
{
for (x = 2*n+1; x > 0; x--)
{
if ((x > n+y+1) || (x < n-y+1))
cout << "*";
else
cout << " ";
}
cout << "\n";
}
return 0;
}
推荐阅读
- python - 如果内部没有任何抽象方法,那么在 Python 中继承 ABC 类有什么意义吗?
- c# - c# devexpress 用前一行填充当前列
- python - 为 Subprocess.Popen 的 STDOUT 分配多个属性
- ios - 为 ios 模拟器构建,但链接和嵌入式框架 .framework' 是为 ios 构建的
- javascript - Prisma,Next JS api route prisma.create 给了我一个错误的请求
- java - Android LiveData - 对象值未更新
- excel - 根据单元格值自动过滤
- vue.js - Vue:添加新的反应属性的不同选项?
- javascript - 在 Javascript 中输出错误的日期
- angular - 错误:无法匹配任何路由。URL 段:'sockjs-node/info'