将菱形分红正、倒两个三角形再加“中间一行”,这样只须要编写“正三角形”和“中间一行”的代码,“倒三角形”直接反转“正三角形”就能够获得,便可拼成完整菱形。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); //遍历集合,打印出倒三角形 } } } }