zoukankan      html  css  js  c++  java
  • [编程题] 回形打印出一个矩阵

    [编程题] 回形打印出一个矩阵

    题目信息

    给定一个m*n的矩阵,再给一个起始值value,要求拿这个起始值进行连续的打印出一个回型的矩阵。

    思路

    定义上下左右边界,循环存储

    注意

    防止四个角的重复打印

    Java代码

    package demo08;
    
    import java.math.BigInteger;
    import java.util.Arrays;
    import java.util.logging.Level;
    
    /**
     * @author jiyongjia
     * @create 2020/7/24 - 13:17
     * @descp:
     */
    public class DemoNo1_回行打印数组 {
        public static void main(String[] args) {
            //调用
            int[][] arr = printArray(4, 4, 10);
            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();
            }
    
    
        }
    
        public static int[][] printArray(int rows,int cols,int startValue){
            //定义存储数组
            int[][] res = new int[rows][cols];
            //定义上下左右限
            int left = 0;
            int right = cols-1;
            int up = 0;
            int down = rows-1;
    
            while (true){
                //右
                for(int i=left;i<=right;i++){
                    res[up][i] = startValue++;
                }
                if(++up > down)   { break;}
                //下
                for(int i=up;i<=down;i++){
                    res[i][right] = startValue++;
                }
                if(--right<left) {break;}
                //左
                for(int i=right;i>=left;i--){
                    res[down][i] = startValue++;
                }
                if(--down<up) {break;}
                //上
                for(int i=down;i>=up;i--){
                    res[i][left] = startValue++;
                }
                if(++left>right) {break;}
            }
            return res;
        }
    
    }
    
    

    输出:

    给定的起始值是10:输出如下:

    image-20200802234348674

    给定起始值0,输出如下

    image-20200802234416853

  • 相关阅读:
    CAST()类型转换函数
    CLR LOH的危险
    保持积极的态度,态度决定一切!
    as 操作符和强行转换的区别
    查内存覆盖从以前的帖子里总结的
    CLR中的范型为什么不支持很多操作符?
    如何做一个好的Team Leader?
    Dispose Pattern总结
    慎用Reflection
    CLR Enum类型内幕
  • 原文地址:https://www.cnblogs.com/jiyongjia/p/13423940.html
Copyright © 2011-2022 走看看