java的基础练习题,双层for循环

编写一段程序,输入一个有规律的图形。比如输入5或者关键参数为5时 ,打印如下效果。

img


可以用双层for循环做出来,这是我的代码,大家可以看看提提意见

 long n=3;
        int m=1;
        for (int i = 0; i < 2 * n - 1; i++) {
            long a = n-1;
            int ans = 0;
            int cout = 0;
            for (int j = 0; j < 2 * n - 1; j++) {
                if (i < n) {
                    if (ans == i) {
                        System.out.print(a + " ");
                        if (cout != 2 * n - 1 - 2 * i)
                            cout++;
                        if (cout == 2 * n - 1 - 2 * i)
                            a++;
                    } else {
                        System.out.print(a + " ");
                        a--;
                        ans++;
                    }
                } else {
                    if (ans == i - 2 * m) {
                        System.out.print(a + " ");
                        if (cout != 2 * n - 2 * i + 4 * m - 1)
                            cout++;
                        if (cout == 2 * n - 2 * i + 4 * m - 1)
                            a++;
                    } else {
                        System.out.print(a + " ");
                        a--;
                        ans++;
                    }

                }
            }
            if (i >= n)
                m++;
            System.out.println();
        }

对二维数组按规律赋值应该会更简单点

public class Test {
    public static void main(String[] args) throws Exception {
        int n = 5;
        int length = 2 * n - 1;
        int[][] arr = new int[length][length];
        for (int i = 0; i < n; i++) {
            for (int j = i; j < length - i; j++) {
                int num = n - i - 1;
                // 行赋值
                arr[i][j] = arr[length - i - 1][j] = num;
                // 列赋值
                arr[j][i] = arr[j][length - i - 1] = num;
            }
        }
        // 打印二维数组
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j]);
            }
            System.out.println();
        }
    }
}

img


若对你有帮助,望采纳!