//化繁为简
//(1)先打印一个矩形
// *****
// *****
// *****
// *****
// (2) 打印一半的金字塔
/* * 第1行1个*
** 第2行2个*
*** 第3行3个*
**** 第4行4个*
***** 第5行5个*
*/
// (3) 打印整个实心金字塔
/*
* 第1行1个* 2i - 1 但是在这之前要打印空格 每行个数 5 - i
*** 第2行3个*
***** 第3行5个*
******* 第4行7个*
********* 第5行9个*
*/
// (4)打印空心金字塔,注意观察规律
/*
* 第1行1个* 2i - 1 但是在这之前要打印空格 每行个数 5 - i
* * 第2行2个* 如果是中间层,那就是打印头尾两颗*
* * 第3行2个*
* * 第4行2个*
********* 第5行9个*
*/
public class Star{
public static void main(String[] args){
for(int i = 1; i <= 5; i++){
for(int m = 1; m <= 5-i; m++){
System.out.print(" ");
}
for (int j = 1; j <= 2*i - 1; j++){
if(i == 1 || i == 5 || j == 1 || j == 2*i-1){
//这边一开始错了,再好好揣摩揣摩
System.out.print("*");
}else
System.out.print(" ");
}
System.out.println("");
}
}
}
3-09单独做第二遍,简化一下思路
//金字塔
//化繁为简:
// (1)直接输出整个实心金字塔,观察每层的*个数与层数之间的关系
// * 第1层1个*
// *** 第2层3个*
// ***** 第3层5个* 每层2i-1个*,前面5 - i个空格
// ******* 第4层7个*
// ********* 第5层9个*
// (2)掏空
// * 第1层1个*
// * * 第2层2个*
// * * 第3层2个* 中间每层2个*,第1层和第5层,层数个*
// * * 第4层2个*
// ********* 第5层9个*
// 先死后活
// 定义 int totallevel = 10;
public class Star{
public static void main(String[] args){
int totallevel = 10;
for (int i = 1; i <= totallevel; i++){
for (int k = 1; k <= totallevel - i; k++){
System.out.print(" ");
}
for (int j=1; j <= 2*i-1; j++){
if( j == 1 || j == 2*i-1 || i == totallevel){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println("");
}
}
}