/*
打印菱形
* 前面空格2= 3-1 =mid-i=|mid-i| 1个*= 2*i-1
*** 前面空格1= 3-2 =mid-i=|mid-i| 3
***** 前面空格0= 3-3 =mid-i=|mid-i| 5
*** 前面空格1=|3-4|=Math.abs(3-4) 3 = 2*(mid - 前面空格数) -1
* 前面空格2=|3-5|=Math.abs(3-2) 1 = 2*(mid - Math.abs(3-4)) -1
Math.abs(mid-i)
*/
int high = 7;//菱形要保证高度是奇数
int mid = high / 2 + 1; //最宽的层
for (int i = 1; i <= high2 ; i++) {
//前面空格
for (int j = Math.abs( mid - i ) ; j > 0 ; j--) {
System.out.print(" ");
}
for (int j = 1 ; j <= 2 * (mid - Math.abs( mid - i )) - 1 ; j++ ) {
System.out.print("*");
}
System.out.print("\n");
}
/*
打印空心菱形
*/
for (int i = 1; i <= high2 ; i++) {
//前面空格
for (int j = Math.abs( mid - i ) ; j > 0 ; j--) {
System.out.print(" ");
}
for (int j = 1 ; j <= 2 * (mid - Math.abs( mid - i )) - 1 ; j++ ) {
if (j == 1 || j == 2 * (mid - Math.abs( mid - i )) - 1 ) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.print("\n");
}
运行结果: