java 列印空心菱形的兩種實現
阿新 • • 發佈:2018-11-19
第一種實現方式:
//列印給定行數的空心菱形 public static void draw(int size){ if (size % 2 == 0) //如果是偶數行變為奇數 { size++; } //中心點:2*size -1 ,實現的關鍵在於找準中心點,下面以列印7行的空心菱形為例進行分析 for (int i = 0; i < size/2+1; i++)//列印菱形上面的4行 { for (int j = 0; j < 2*size - 1; j++)//每一行的總長度是2*size -1 { if (j == (size -1-2*i) || j ==(size -1 + 2*i))//中心點左右兩邊對稱的位置列印 * 號 { System.out.print("*"); } else { System.out.print(" "); } } System.out.println(); }for (int i = size/2-1; i >= 0; i--)//列印菱形下面的3行 { for (int j = 0; j < 2*size - 1; j++) { if (j == (size -1-2*i) || j ==(size -1 + 2*i))//中心點左右兩邊對稱的位置列印 * 號 { System.out.print("*"); }else { System.out.print(" "); } } System.out.println(); } }
這是一個正文形裡面有一個菱形:
第二種實現方式:
public static void draw2(int size){ if (size % 2 == 0) { size++; } for (int i = 0; i < size/2 + 1; i++) { for(int j =size/2+1;j>i+1;j--){//列印菱形空上角位置的空白 System.out.print(" "); } for (int j = 0; j < 2*i+1; j++)//列印菱形的上半部分 { if (j==0||j==2*i) { System.out.print("*"); } else { System.out.print(" "); } } System.out.println(); } for (int i = size/2+1; i < size; i++)//列印菱形的下半部分 { for (int j = 0; j < i - size/2; j++)//列印左下角的空白 { System.out.print(" "); } for (int j = 0; j < 2 * size -1-2*i; j++) { if (j==0||j==2*(size -i -1)) { System.out.print("*"); } else { System.out.print(" "); } } System.out.println(); } }
輸出結果: