题目

从标准输入读入金字塔的层数 h,在控制台使用星号 * 和空格打印出居中对齐的字符金字塔。

输入格式:一行输入一个正整数 h,表示金字塔高度。

输出格式:输出 h 行字符图案,构成居中金字塔。

数据范围与约定:1 ≤ h ≤ 30。

思路与算法

1. 空格与星号数量数学规律
对于第 i 行(从 1 开始计):
前导空格数:h - i 个;
星号 * 数:2 * i - 1 个(奇数递增)。

2. 嵌套循环打印
每行先用循环打印对应数量的前导空格,再打印星号,最后输出换行符。

完整程序

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int h = sc.nextInt();

        // 第 i 行(从 1 到 h):
        // 前导空格数为 h - i;星号数为 2 * i - 1
        for (int i = 1; i <= h; i++) {
            for (int s = 0; s < h - i; s++) {
                System.out.print(" ");
            }
            for (int star = 0; star < 2 * i - 1; star++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

运行示例

输入:

4

输出:

*
**
***
****