金字塔
- 思路分析
- 详细代码
思路分析
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("");