📜  程序在三角形内打印空心三角形(1)

📅  最后修改于: 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;
}
总结

在本文中,我们介绍了一种简单的解决方案,该方案使用嵌套循环来打印三角形和空心三角形。希望这篇文章对您有所帮助!