• java实现三角螺旋阵


    方阵的主对角线之上称为“上三角”。
    请你设计一个用于填充n阶方阵的上三角区域的程序。填充的规则是:使用1,2,3….的自然数列,从左上角开始,按照顺时针方向螺旋填充。
    例如:当n=3时,输出:
    1 2 3
    6 4
    5
    当n=4时,输出:
    1 2 3 4
    9 10 5
    8 6
    7
    当n=5时,输出:
    1 2 3 4 5
    12 13 14 6
    11 15 7
    10 8
    9

    程序运行时,从标准输入获得整数n(3~20)
    程序输出:方阵的上三角部分。
    要求格式:每个数据宽度为4,右对齐。

    package com.liu.ex9;
    
    import java.util.Scanner;
    
    
    public class Main {
        
        public void initArray(int[][] arrayA) {
            for(int i = 0;i < arrayA.length;i++)
                arrayA[i] = new int[arrayA.length - i];
        }
        
        public void dfs(int[][] arrayA, int row, int num) {
            if(row >= arrayA.length / 2)
                return;
            //填充上方第一行
            for(int i = row;i < arrayA[row].length - row;i++)
                arrayA[row][i] = num++;
            //填充后续每一行右边最后一个元素
            for(int i = row + 1;i < arrayA[row].length - row;i++)
                arrayA[i][arrayA[i].length - 1 - row] = num++;
            //填充后续每一行开始左边第一个元素
            for(int i = arrayA[row].length - 2 - row;i > row;i--)
                arrayA[i][row] = num++;
            dfs(arrayA, row + 1, num);
        }
        
        public void printResult(int[][] arrayA) {
            for(int i = 0;i < arrayA.length;i++) {
                for(int j = 0;j < arrayA[i].length;j++)
                    System.out.printf("%4d",arrayA[i][j]);
                System.out.println();
            }
        }
        public static void main(String[] args) {
            Main test = new Main();
            Scanner in = new Scanner(System.in);
            int n = in.nextInt();
            int[][] arrayA = new int[n][];
            test.initArray(arrayA);
            test.dfs(arrayA, 0, 1);
            test.printResult(arrayA);
        }
    }
    
  • 相关阅读:
    TypeError: run() missing 2 required positional arguments: 'rerun' and 'save_last_run'
    在wsl的ubuntu上安装vcpkg
    vscode + WSL +Ubuntu编程解决方案
    clion debug模式带参数运行程序
    关于jdk1.7之后String的intern方法的一点理解
    关于java中split的坑
    关于向HashMap存放数据出现顺序混乱的问题
    oracle外键禁用
    oracle复杂查询(二)
    oracle复杂查询(一)
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13077819.html
Copyright © 2020-2023  润新知