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

  • 相关阅读:
    终端-进入云服务器
    Git-简单的利用SourceTree提交代码
    iOS-多线程的底层实现
    JS-表单提交检查表单字数方法
    JS-实时修改在textarea里面的span(实际输入的文字)
    JS-textarea限制输入字数
    JS-Zepto.js中文链接
    搭建简单的单个Mybatis框架
    创建一个简单的SSM框架(2)
    创建一个简单的SSM框架(1)
  • 原文地址:https://www.cnblogs.com/jiyongjia/p/13423940.html
Copyright © 2011-2022 走看看