打印任意边长的空心菱形的两种方法

xiaoxiao2021-02-28  52

//先打印一个矩形,然后矩形里面符合菱形的位置打印*。 int l = 5; //边长为5的菱形 for (int i = 1; i < 2 * l; i++) { for (int j = 1; j < 2 * l; j++) { if (j == i + l - 1 || j == i - l + 1) { System.out.print('*'); } else if (j == l - i + 1 || j == 3 * l - 1 - i) { System.out.print('*'); } else { System.out.print(' '); } System.out.println(); } } *********************************** private static void lingXing(int x) {//打印边长为X的空心菱形 for (int i = 1; i <= x; i++) { for (int j = 1; j <= x - i + 1; j++) { System.out.print(" "); } int temp = 2 * i - 2; for (int k = 0; k <= temp; k++) { if (k == 0 || k == temp) { System.out.print("*"); } else { System.out.print(" "); } } System.out.println(); }//上面这部分是打印菱形的上半部分,下面则是打印下半部分 for (int i = 1; i < x; i++) { for (int j = 1; j <= i + 1; j++) { System.out.print(" "); } int temp = 2 * (x - i) - 1 - 1; for (int k = 0; k <= temp; k++) { if (k == 0 || k == temp) { System.out.print("*"); } else { System.out.print(" "); } } System.out.println(); } } //感觉第一种简单容易理解,第二种逻辑性强一些。
转载请注明原文地址: https://www.6miu.com/read-800269.html

最新回复(0)