把要输出的三角行可以分成如下六个部分,每行分别输出每部分的内容,如下图所示:
第一部分空格的循环范围,即空格个数: 1~n-i
第二部分*的循环范围,即星号个数:1~2*i-1
第三部分空格的循环范围,即空格个数:1~(n-i)*2
第四部分*的循环范围,即星号个数:1~2*i-1
第五部分空格的循环范围,即空格个数:1~(n-i)*2
第六部分*的循环范围,即星号个数:1~2*i-1
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 << "*"; //每行第二部分的*
for (int j = 1; j <= (n - i) * 2; j++) cout << " "; //每行第三部分的空格
for (int j = 1; j <= 2 * i - 1; j++) cout << "*"; //每行第四部分的*
for (int j = 1; j <= (n - i) * 2; j++) cout << " "; //每行第五部分的空格
for (int j = 1; j <= 2 * i - 1; j++) cout << "*"; //每行第六部分的*
cout << endl; //每输出完一行就换行
}