题解
【入门】轴对称三角形
1 条题解
-
0
解题思路
题目要求输出一个等腰三角形沿 x 轴或 y 轴对称后的图形。
等腰三角形(n 行)的样子:
第 i 行(从 0 开始):先输出 n-1-i 个空格,再输出 2i+1 个星。
x 轴对称(上下对称):
把三角形沿水平线翻转,得到下面的镜像部分。所以先输出正着的三角形,再输出倒着的三角形,共 2n 行。
y 轴对称(左右对称):
把三角形沿竖线翻转。因为等腰三角形本身左右对称,翻转后一模一样,所以直接输出原来的三角形就行。
参考代码
#include <iostream> using namespace std; int main() { int n; char c; cin >> n >> c; if (c == 'x') { // 上半部分(正三角形) for (int i = 0; i < n; i++) { for (int j = 0; j < n - 1 - i; j++) cout << ' '; for (int j = 0; j < 2 * i + 1; j++) cout << '*'; cout << endl; } // 下半部分(镜像) for (int i = n - 1; i >= 0; i--) { for (int j = 0; j < n - 1 - i; j++) cout << ' '; for (int j = 0; j < 2 * i + 1; j++) cout << '*'; cout << endl; } } else { // y 轴对称:本身左右对称,直接输出 for (int i = 0; i < n; i++) { for (int j = 0; j < n - 1 - i; j++) cout << ' '; for (int j = 0; j < 2 * i + 1; j++) cout << '*'; cout << endl; } } return 0; }复杂度分析
- 时间复杂度:O(N²),每行打印字符
- 空间复杂度:O(1)
- 1