zoukankan      html  css  js  c++  java
  • Java-螺旋方阵

    用Java实现螺旋方阵
    螺旋方阵:是指呈螺旋状的矩阵。

    这里写图片描述

    具体实现如下:

    public void screwMatrix() {
            System.out.print("请输入数字:");
            Scanner input = new Scanner(System.in);
            int number = input.nextInt();
    
            int[][] matrix = new int[number][number];
            int max = number * number;
            int row = 0, col = 0;
            int direction = 0;
            for (int j = 1; j <= max; j++) {
                matrix[row][col] = j;
                switch (direction) {
                    case 0 :
                        if (col + 1 >= number || matrix[row][col + 1] > 0) {
                            direction += 1;
                            direction %= 4;
                            row += 1;
                        } else {
                            col = col + 1;
                        }
                        break;
                    case 1 :
                        if (row + 1 >= number || matrix[row + 1][col] > 0) {
                            direction += 1;
                            direction %= 4;
                            col -= 1;
                        } else {
                            row = row + 1;
                        }
                        break;
                    case 2 :
                        if (col - 1 < 0 || matrix[row][col - 1] > 0) {
                            direction += 1;
                            direction %= 4;
                            row = row - 1;
                        } else {
                            col = col - 1;
                        }
                        break;
                    case 3 :
                        if (row - 1 < 0 || matrix[row - 1][col] > 0) {
                            direction += 1;
                            direction %= 4;
                            col += 1;
                        } else {
                            row = row - 1;
                        }
                        break;
                    default :
                        System.out.println("ERROR");
                        System.exit(0);
                }
            }
            for (int j = 0; j < number; j++) {
                for (int k = 0; k < number; k++) {
                    // 判断输出最大数的长度
                    int size = ((number * number) + "").length();
    
                    for (int i = 0; i <= (size - (matrix[j][k] + "").length() + 1); i++) {
                        System.out.print(" ");
                    }
                    System.out.print(matrix[j][k]);
                }
                System.out.println("");
            }
        }
  • 相关阅读:
    一些 好的链接
    图像滤波算法
    minigui中使用ttf字体库流程
    国庆长假归来
    vs2015 快捷键
    R11 u盘不能自动识别
    qt 自定义折线图
    qt QThread
    qt动态库编译和链接
    scons 库文件生成和链接
  • 原文地址:https://www.cnblogs.com/hedianwei/p/6139629.html
Copyright © 2011-2022 走看看