// *
// ***
// *****
// *******
// *********
//******************************* 31
// ************************* 28
// ********************* 26
// ******************* 25
// ********* *********
// ******* *******
// ***** *****
// *** ***
// * * 30
int num = 0,sum = 0;
//顶部等腰三角形
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 15 - i; j++) {
System.out.print(" ");
}
for (int j = 0; j < 2*(i + 1)-1; j++) {
System.out.print("*");
}
System.out.println();
}
//中间部分
for (int i = 0; i < 4; i++) {
if (i > 0){
//每行的差值
num = 4-i;// 3 2 1
}
//差值和
sum += num;
for (int j = 0; j < 31 - sum; j++) {
//0 3 5 6
if (j < sum){
System.out.print(" ");
}else {
System.out.print("*");
}
}
System.out.println();
}
//下半部分
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5 - i; j++) {
System.out.print(" ");
}
//左下角的*数为: 9 7 5 3 1
for (int j = 0; j <9 - 2*i ; j++) {
System.out.print("*");
}
//左下角右边空格数: 3 9 15 21 27
for (int j = 0; j < 3 + 6 * i; j++) {
System.out.print(" ");
}
//右下角的*数为:9 7 5 3 1
for (int j = 0; j < 9 - 2 * i; j++) {
System.out.print("*");
}
System.out.println();
}
代码量较多,if...else..用的较少。自我感觉通俗易懂一些