控制檯列印空心菱形
阿新 • • 發佈:2019-02-08
思路:把列印菱形分為上下兩部分,查詢列印空格和星號所在行的關係,然後只打印邊沿的星號即可,即空心。
package binary;
import java.util.Scanner;public class HollowDiamond {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("請輸入菱形的高度,必須是奇數:");
int height=input.nextInt();//菱形的總高度
/**
* 列印菱形的上半部分
*
*/
int top=(height+1)/2;//菱形的上半部分總高度
for(int j=1;j<=top;j++) {//行數
//列印上半部分的空格,形如倒三角形
for(int i=top-j;i>0;i--) {//列印的空格個數等於高度減去所在的行數
System.out.print(" ");
}
//列印上半部分的* ,形如等腰三角形
for(int i=1;i<=2*j-1;i++) {
if(i==1||i==2*j-1) {//只在邊沿列印*,其他地方列印空格,即空心
System.out.print("*");//列印*的個數等於所在的行數*2-1
}else {
System.out.print(" ");
}
}
System.out.println();
}
/**
* 列印菱形的下半部分
*
*/
int bottom=(height-1)/2;//菱形的下半部分總高度
for(int i=1;i<=bottom;i++) {
//列印下半部分的空格等於所在的行數
for(int j=1;j<=i;j++) {//
System.out.print(" ");
}
//列印下半部分的*的規律: 2*(bottom+1-n)-1,其中n為所在的行數
for(int m=1;m<=2*(bottom+1-i)-1;m++) {
if(m==1||m==2*(bottom+1-i)-1) {//只在邊沿列印*,其他地方列印空格,即空心
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.println();
}
}
}