將菱形分紅正、倒兩個三角形再加「中間一行」,這樣只須要編寫「正三角形」和「中間一行」的代碼,「倒三角形」直接反轉「正三角形」就能夠獲得,便可拼成完整菱形。java
public class practice { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("輸入一個整數:"); if (sc.hasNextInt()) { int num = sc.nextInt(); //輸入數據 List<String> triangle = new ArrayList<>(); //存儲正三角形每一行的空格和* /* 正三角 */ int sum = 1; //*的個數 for (int i = 1; i <= num - 1; i++) { //外循環次數:正三角形的行數 String temp = ""; //臨時存放當前行的空格和*,每外循環一次清空 for (int j = num - 1; j >= i; j--) { //循環次數:每一行空格的個數 temp = temp + " "; } for (int k = 1; k <= sum; k++) { //循環次數:每一行*的個數 temp = temp + "*"; } triangle.add(temp); //添加每一行到集合中 sum = sum + 2; //換行累加2 } for (String s : triangle) { //遍歷集合,打印出正三角形 System.out.println(s); } /* 中間一行 */ for (int i = 0; i < 2 * num - 1; i++) { //已知N計算中間一行*的個數 System.out.print("*"); } System.out.println(); //換行 /* 倒三角 */ Collections.reverse(triangle); //反轉集合元素順序 for (String s : triangle) { System.out.println(s); //遍歷集合,打印出倒三角形 } } } }