【Java笔试题】蛇形矩阵

来源:互联网 发布:金数据官网 编辑:程序博客网 时间:2024/06/05 17:17

1、题目

自定义n,输出n阶蛇形矩阵。

2、Java代码

public class SnakeMatrix {    public static void main(String[] args) {        snake(7);  //n=7    }    public static int snake(int n) {        if (n <= 0) {            System.out.println("error");            return 0;        } else {            int value = 1;            int i = 0, j = 0;            int[][] array = new int[n][n];            boolean[][] flag = new boolean[n][n];            int t = n * n;            while (value <= t) {                if (i == 0 && j == 0) {                    array[i][j] = value++;                    flag[i][j] = true;                    i++;                }                if (j == 0 && i > 0 && i < n - 1) {                    if (flag[i - 1][j + 1]) {                        array[++i][j] = value++;                        flag[i][j] = true;                    }                    while (i != 0) {                        array[--i][++j] = value++;                        flag[i][j] = true;                    }                }                if (i == 0 && j > 0 && j < n - 1) {                    if (flag[i + 1][j - 1]) {                        array[i][++j] = value++;                        flag[i][j] = true;                    }                    while (j != 0) {                        array[++i][--j] = value++;                        flag[i][j] = true;                    }                }                if (i == n - 1 && j >= 0 && j < n - 1) {                    if (flag[i - 1][j + 1]) {                        array[i][++j] = value++;                        flag[i][j] = true;                    }                    while (j != n - 1) {                        array[--i][++j] = value++;                        flag[i][j] = true;                    }                }                if (j == n - 1 && i >= 0 && i < n - 1) {                    if (flag[i + 1][j - 1]) {                        array[++i][j] = value++;                        flag[i][j] = true;                    }                    while (i != n - 1) {                        array[++i][--j] = value++;                        flag[i][j] = true;                    }                }            }            for (i = 0; i < n; i++) {                for (j = 0; j < n; j++) {                    System.out.print(array[i][j] + "/t");                }                System.out.println();            }            return 1;        }    }}
1 0
原创粉丝点击