📅  最后修改于: 2023-12-03 15:41:05.352000             🧑  作者: Mango
如果你正在寻找一种在三角形内打印空心三角形的方法,那么你来对地方了!本文将向您介绍一种简单的解决方案。
我们可以使用嵌套循环来打印三角形和空心三角形。如下图所示,我们首先使用一个外部循环来打印整个三角形的行数,然后使用一个内部循环来确定每行需要打印的空格和星号数。
for (int i = 1; i <= n; i++) { // 打印三角形的行数
for (int j = 1; j <= n - i; j++) { // 打印空格
cout << " ";
}
for (int j = 1; j <= (2 * i - 1); j++) { // 打印星号
cout << "*";
}
cout << endl;
}
要打印一个空心三角形,我们需要在内部循环中加入更多的逻辑,以便能够打印出空心的三角形。我们需要判断当前打印的位置是否为三角形边缘的位置,如果是,则打印星号;如果不是,则打印空格。
for (int i = 1; i <= n; i++) { // 打印三角形的行数
for (int j = 1; j <= n - i; j++) { // 打印空格
cout << " ";
}
for (int j = 1; j <= (2 * i - 1); j++) { // 打印星号或空格
if (i == 1 || i == n || j == 1 || j == (2 * i - 1)) { // 判断打印位置是否为边缘
cout << "*";
} else {
cout << " ";
}
}
cout << endl;
}
下面是完整的C++代码:
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n; // 输入三角形的行数
cout << "打印三角形:" << endl;
for (int i = 1; i <= n; i++) { // 打印三角形的行数
for (int j = 1; j <= n - i; j++) { // 打印空格
cout << " ";
}
for (int j = 1; j <= (2 * i - 1); j++) { // 打印星号
cout << "*";
}
cout << endl;
}
cout << "打印空心三角形:" << endl;
for (int i = 1; i <= n; i++) { // 打印三角形的行数
for (int j = 1; j <= n - i; j++) { // 打印空格
cout << " ";
}
for (int j = 1; j <= (2 * i - 1); j++) { // 打印星号或空格
if (i == 1 || i == n || j == 1 || j == (2 * i - 1)) { // 判断打印位置是否为边缘
cout << "*";
} else {
cout << " ";
}
}
cout << endl;
}
return 0;
}
在本文中,我们介绍了一种简单的解决方案,该方案使用嵌套循环来打印三角形和空心三角形。希望这篇文章对您有所帮助!