我是靠谱客的博主 殷勤大炮,最近开发中收集的这篇文章主要介绍求zigzag数组矩阵,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

输入一个数字n,然后生成n×n的矩阵,矩阵的内容沿45度线递增

如下图输入8

判断是到每行的界限还是到每列的界限,然后对矩阵的i,j进行变换,存入数字。

public static void main(String[] args) { 
		
		 	int i,j, n=8,num=0;
		 	int[][] parry=new int[n][n];
		 	
		 	for(i=0;i<n;i++)
		 		for(j=0;j<n;j++)
		 			parry[i][j]=0;
		 	
		 	int k,l;
		 	i=0;
		 	j=0;
		 	parry[i][j]=num++;//特殊处理
		 	for(k=2;k<=n;k++) //行数从1,2,3.。。。n-1,对角线是n
		 	{
		 		if(i==0)//判断是否在每行每列的最外面,然后把控制行列的i,j变向
		 		{
		 			parry[i][++j]=num++;//行列最外面的特殊处理
		 			for(l=1;l<k;l++)
		 				parry[++i][--j]=num++;
		 			continue;//继续下一行
		 		}
		 		if(j==0)
		 		{
		 			parry[++i][j]=num++;
		 			for(l=1;l<k;l++)
		 				parry[--i][++j]=num++;
		 			continue;
		 		}
		 	}
		 	
		 	for(k=n-1;k>=2;k--)
		 	{
		 		if(i==n-1)//判断是否在每行每列的最外面,然后把控制行列的i,j变向
		 		{
		 			parry[i][++j]=num++;
		 			for(l=1;l<k;l++)
		 				parry[--i][++j]=num++;
		 			continue;
		 		}
		 		if(j==n-1)
		 		{
		 			parry[++i][j]=num++;
		 			for(l=1;l<k;l++)
		 				parry[++i][--j]=num++;
		 			continue;
		 		}
		 	}
		 	parry[n-1][n-1]=num;
		 	
		 	
		 	for(i=0;i<n;i++)
		 	{	
		 		for(j=0;j<n;j++)
		 			System.out.print(parry[i][j]+"  ");
		 		System.out.println();
		 	}
	 }



最后

以上就是殷勤大炮为你收集整理的求zigzag数组矩阵的全部内容,希望文章能够帮你解决求zigzag数组矩阵所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部