当前位置:首页 > Java

java如何打印梯形

2026-03-23 07:38:10Java

打印梯形的实现方法

在Java中打印梯形可以通过嵌套循环实现,关键在于控制空格和星号(或其他字符)的输出比例。以下是两种常见方法:

使用双重循环打印空心梯形

public class PrintTrapezoid {
    public static void main(String[] args) {
        int rows = 5; // 梯形高度
        int base = 10; // 下底长度

        for (int i = 0; i < rows; i++) {
            // 打印左侧空格
            for (int j = 0; j < rows - i - 1; j++) {
                System.out.print(" ");
            }

            // 打印梯形边界
            for (int k = 0; k < base - 2*(rows - i - 1); k++) {
                if (i == 0 || i == rows - 1 || k == 0 || k == base - 2*(rows - i - 1) - 1) {
                    System.out.print("*");
                } else {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
    }
}

打印实心梯形的简化版

public class SolidTrapezoid {
    public static void main(String[] args) {
        int height = 4;
        int topWidth = 3;
        int bottomWidth = 7;

        for (int i = 0; i < height; i++) {
            int currentWidth = topWidth + 2 * i;
            int spaces = (bottomWidth - currentWidth) / 2;

            for (int j = 0; j < spaces; j++) {
                System.out.print(" ");
            }

            for (int k = 0; k < currentWidth; k++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

参数化梯形打印方法

更灵活的解决方案是创建一个可配置的方法:

public static void printTrapezoid(int height, int topBase, int bottomBase, char symbol) {
    if (bottomBase <= topBase) {
        System.out.println("下底必须大于上底");
        return;
    }

    for (int row = 0; row < height; row++) {
        int currentWidth = topBase + (bottomBase - topBase) * row / (height - 1);
        int padding = (bottomBase - currentWidth) / 2;

        // 左侧填充空格
        System.out.print(" ".repeat(padding));

        // 打印梯形符号
        System.out.print(String.valueOf(symbol).repeat(currentWidth));

        System.out.println();
    }
}

调用示例:

printTrapezoid(5, 3, 9, '#');

数学公式说明

梯形的每行宽度计算遵循线性变化: [ \text{currentWidth} = \text{topBase} + (\text{bottomBase} - \text{topBase}) \times \frac{\text{row}}{\text{height} - 1} ]

其中:

java如何打印梯形

  • row 是当前行号(从0开始)
  • height 是梯形总高度
  • topBasebottomBase 分别是上底和下底的长度

标签: 梯形java
分享给朋友:

相关文章

java如何使用

java如何使用

Java 基本使用方法 Java 是一种广泛使用的编程语言,适用于开发各种类型的应用程序。以下是 Java 的基本使用方法,包括环境配置、语法基础和常用操作。 安装 Java 开发环境 下载并安装…

如何运行java

如何运行java

运行Java程序的方法 安装Java开发工具包(JDK) 确保系统已安装JDK。可通过命令行输入 java -version 检查是否安装。若未安装,需从Oracle官网或OpenJDK下载并配置环境…

java如何学习

java如何学习

学习Java的有效方法 理解基础概念 Java是一门面向对象的编程语言,掌握基础概念如变量、数据类型、运算符、控制语句(if-else、循环)是必要的。面向对象的核心概念包括类、对象、继承、多态和封装…

java如何输出数组

java如何输出数组

输出数组的方法 在Java中,输出数组内容有多种方式,具体取决于数组类型和输出格式需求。以下是几种常见的方法: 使用Arrays.toString()方法 适用于一维数组,直接调用Arrays.to…

java如何删除文件

java如何删除文件

删除文件的基本方法 使用 java.io.File 类的 delete() 方法可以删除文件。如果文件存在且删除成功,返回 true;否则返回 false。 import java.io.Fil…

java中如何输入

java中如何输入

输入方法 在Java中,可以通过多种方式实现输入操作,具体取决于输入来源和需求。以下是几种常见的输入方法: 使用Scanner类 Scanner类是Java中最常用的输入工具,适用于从控制台或文件读…