思路分析
1.先打印一个矩形
******
******
******
******
******
2.打印半个金字塔
* //第1层 有1个*
** //第2层 有2个*
*** //第3层 有3个*
***** //第4层 有4个*
****** //第5层 有5个*
3.打印整个金字塔
* //第1层 有1个* 2*1-1 有4=(总层数-1)个空格
*** //第2层 有1个* 2*2-1 有3=(总层数-1)个空格
***** //第3层 有1个* 2*3-1 有2=(总层数-1)个空格
******* //第4层 有1个* 2*4-1 有1=(总层数-1)个空格
********* //第5层 有1个* 2*5-1 有0=(总层数-1)个空格
4.打印空心金字塔怕【最难】
* //第1层 有1个* 当前行第一个位置是*,最后一个位置也是*
* * //第2层 有2个* 当前行第一个位置是*,最后一个位置也是*
* * //第3层 有2个* 当前行第一个位置是*,最后一个位置也是*
* * //第4层 有2个* 当前行第一个位置是*,最后一个位置也是*
********* //第5层 有9个* 全部输出*
详细代码
1.打印整个金字塔
for (int i = 1; i <= 5; i++){
//输出*之前输出对应的空格
for(int j = 1; j <= 5 - i; j++){
System.out.print(" ");
}
//控制每层打印*的个数
for (int n = 1; n <= 2 * i - 1; n++){
System.out.print("*");
}
//每打印完一层* 就换行
System.out.println("");
}
2.打印空心金字塔
int totalLevel = 5; //层数
for (int i = 1; i <= totalLevel; i++){
//输出*之前输出 对应的空格数 = 总层数 - 当前层
for(int j = 1; j <= totalLevel - i; j++){
System.out.print(" ");
}
//控制每层打印*的个数
for (int n = 1; n <= 2 * i - 1; n++){
//当前第一行第一个位置是*,最后一个位置也是*,最后一层全部是*
if(n == 1 || n == 2 * i - 1 || i == totalLevel){
System.out.print("*");
}else { //其他情况输出空格
System.out.print(" ");
}
}
//每打印完一层* 就换行
System.out.println("");