大成 发表于 2025-5-28 20:43:03

用Java语言实现list存储后输出*等腰三角形(正、倒、正加倒)

# Java实现等腰三角形输出

以下是使用Java实现正等腰三角形、倒等腰三角形以及正加倒等腰三角形的代码:

```java
import java.util.ArrayList;
import java.util.List;

public class IsoscelesTriangle {
    public static void main(String[] args) {
      int height = 5; // 三角形的高度

      // 正等腰三角形
      List<String> normalTriangle = generateNormalTriangle(height);
      System.out.println("正等腰三角形:");
      printTriangle(normalTriangle);

      // 倒等腰三角形
      List<String> invertedTriangle = generateInvertedTriangle(height);
      System.out.println("\n倒等腰三角形:");
      printTriangle(invertedTriangle);

      // 正加倒等腰三角形
      List<String> combinedTriangle = combineTriangles(height);
      System.out.println("\n正加倒等腰三角形:");
      printTriangle(combinedTriangle);
    }

    // 生成正等腰三角形
    private static List<String> generateNormalTriangle(int height) {
      List<String> triangle = new ArrayList<>();
      for (int i = 1; i <= height; i++) {
            StringBuilder line = new StringBuilder();
            // 添加空格
            for (int j = 0; j < height - i; j++) {
                line.append(" ");
            }
            // 添加星号
            for (int k = 0; k < 2 * i - 1; k++) {
                line.append("*");
            }
            triangle.add(line.toString());
      }
      return triangle;
    }

    // 生成倒等腰三角形
    private static List<String> generateInvertedTriangle(int height) {
      List<String> triangle = new ArrayList<>();
      for (int i = height; i >= 1; i--) {
            StringBuilder line = new StringBuilder();
            // 添加空格
            for (int j = 0; j < height - i; j++) {
                line.append(" ");
            }
            // 添加星号
            for (int k = 0; k < 2 * i - 1; k++) {
                line.append("*");
            }
            triangle.add(line.toString());
      }
      return triangle;
    }

    // 生成正加倒等腰三角形
    private static List<String> combineTriangles(int height) {
      List<String> combined = new ArrayList<>();
      combined.addAll(generateNormalTriangle(height));
      combined.addAll(generateInvertedTriangle(height));
      return combined;
    }

    // 打印三角形
    private static void printTriangle(List<String> triangle) {
      for (String line : triangle) {
            System.out.println(line);
      }
    }
}
```

## 代码说明

1. **正等腰三角形**:
   - 从上到下,每一行的星号数量递增(1, 3, 5,...)
   - 每一行前面的空格数量递减

2. **倒等腰三角形**:
   - 从上到下,每一行的星号数量递减
   - 每一行前面的空格数量递增

3. **正加倒等腰三角形**:
   - 将正三角形和倒三角形拼接在一起

4. **参数**:
   - `height` 变量控制三角形的高度
   - 所有三角形都存储在 `List<String>` 中,最后统一输出

## 输出示例(高度为5时)

```
正等腰三角形:
    *
   ***
*****
*******
*********

倒等腰三角形:
*********
*******
*****
   ***
    *

正加倒等腰三角形:
    *
   ***
*****
*******
*********
*********
*******
*****
   ***
    *
```

您可以通过修改 `height` 变量的值来改变三角形的大小。


页: [1]
查看完整版本: 用Java语言实现list存储后输出*等腰三角形(正、倒、正加倒)