一、案例效果演示
通过以下代码可以输出一个层数可调的金字塔图案(以10层为例):
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
二、需求分析
实现一个可自定义层数的星号金字塔,要求:
-
图形左右对称
-
每层星号数量符合2n-1规律
-
支持动态调整金字塔层数
三、核心代码实现
/**
* 星号金字塔生成器
*/
public class StarPyramid {
public static void main(String[] args) {
printPyramid(10); // 可修改参数调整层数
}
public static void printPyramid(int layers) {
for (int i = 1; i <= layers; i++) {
// 打印左侧空格
for (int j = 1; j <= layers - i; j++) {
System.out.print(" ");
}
// 打印星号
for (int j = 1; j <= 2*i - 1; j++) {
System.out.print("*");
}
System.out.println(); // 换行
}
}
}
四、实现原理
-
空间分配机制
-
总宽度:2n-1(n为层数)
-
每层元素 = 左侧空格 + 星号区
-
-
循环控制逻辑
graph TD A[外层循环i控制层数] --> B[打印layers-i个空格] B --> C[打印2i-1个星号] C --> D{是否最后一层?} D -->|否| A D -->|是| E[结束]