前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >构造蛇形矩阵

构造蛇形矩阵

作者头像
week
发布2018-08-24 14:26:51
6000
发布2018-08-24 14:26:51
举报
文章被收录于专栏:用户画像用户画像

一、题目

n=3的回型矩阵

1  2  3 8  9  4 7  6  5 n=4的回型矩阵 1  2  3  4 12  13  14  5 11  16  15  6 10  9  8  7 n=5的回型矩阵 1  2  3  4  5 16  17  18  19  6 15  24  25  20  7 14  23  22  21  8 13  12  11  10  9 n=6的回型矩阵 1  2  3  4  5  6 20  21  22  23  24  7 19  32  33  34  25  8 18  31  36  35  26  9 17  30  29  28  27  10

16  15  14  13  12  11

二、思路

矩阵由n/2圈组成,一圈是由四条边组成,

第一条边横向(i=k不变,j++),第二条边竖向(j=n-k-1不变,i++),第三条边(i=n-k-1不变,j--),第四条边(j=k不变,i--)

如果n为奇数,则最后A[n/2][n/2]为最后一个元素

三、代码

代码语言:javascript
复制
import java.util.Scanner;
public class Snake {
    public static void main(String[]args){
        Scanner sc=new Scanner(System.in);
        System.out.println("Please enter n:");
        int n=sc.nextInt();
        printJZ(n);
    }

    public static void printJZ(int n){
        int [][]A=new int[n][n];
        int t=1;
        int i=0;
        int j=0;
        for(int k=0;k<n/2;k++){//k代表第几圈
            for(i=k,j=k;j<n-k-1;j++){//第一条边
                A[i][j]=t++;
            }
            for(i=k,j=n-k-1;i<n-k-1;i++){//第二条边
                A[i][j]=t++;
            }
            for(i=n-k-1,j=n-k-1;j>k;j--){//第三条边
                A[i][j]=t++;
            }
            for(i=n-k-1,j=k;i>k;i--){//第四条边
                A[i][j]=t++;
            }
        }
        if(n%2==1){
            A[n/2][n/2]=t;
        }

        for(i=0;i<n;i++){
            for (j=0;j<n;j++) {
                System.out.print(A[i][j]+" ");
            }
            System.out.println();
        }
    }
}

四、验证

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年01月01日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档