Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java函数来构建以下方阵_Java_Arrays_Matrix_Multidimensional Array - Fatal编程技术网

Java函数来构建以下方阵

Java函数来构建以下方阵,java,arrays,matrix,multidimensional-array,Java,Arrays,Matrix,Multidimensional Array,我需要一个函数,它以(int n)作为函数参数,构建以下矩阵: 在文本中 1, 6, 14, 20, 24, 10, 2, 7, 15, 21, 17, 11, 3, 8, 16, 22, 18, 12, 4, 9, 25, 23, 19, 13, 5 所需代码: static void Print(int n) { int[][] matrix= new int[n][n]; int i,j; // Help needed here to build th

我需要一个函数,它以(int n)作为函数参数,构建以下矩阵:

在文本中

1, 6, 14, 20, 24, 
10, 2, 7, 15, 21, 
17, 11, 3, 8, 16, 
22, 18, 12, 4, 9, 
25, 23, 19, 13, 5
所需代码:

static void Print(int n)
{
    int[][] matrix= new int[n][n];
    int i,j;

    // Help needed here to build the matrix e.g. for(i=0;i<n*n;i++) {…}

    //To print it
    for (i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
        System.out.print(matrix[i][j]+" ");
        System.out.println();
    }
}
静态无效打印(int n)
{
int[][]矩阵=新的int[n][n];
int i,j;
//此处需要帮助来构建矩阵,例如for(i=0;i
public class Main{
公共静态void生成矩阵(int n){
int[][]矩阵=新的int[n][n];
int i,j;
int x=0,y=0,flipX=0,flipY=0;
对于(int k=0;k=n){
y=++flipX;
x=0;
}
如果(y>=n),则为else{
x=++flipY;
y=0;
}
矩阵[x++][y++]=k+1;
}
//打印
int-sizeOfMaxDigit=String.valueOf(n*n).length();

对于(i=0;iStackoverflow不是免费的代码编写服务。您自己尝试过什么?是的,我尝试过。我认为发布垃圾代码是没有用的。一个解释可能对OP@GBlodgett我完全同意。但我故意发布了一个模糊的解决方案,混合了中缀和后缀增量,希望OP能花些时间答案在他们的调试器中…@SlawomirChodnicki这实际上不是家庭作业。我试图在前几年的试卷前解决2个等级的问题。@SlawomirChodnicki我喜欢你的解决方案:D.@LoneWolf好的,学术练习:)
class DP
{
    static void Print(int n)
    {
        int[][] matrix= new int[n][n];
        int i,j,x=0;
        for(i=0;i<matrix.length;i++)
        {
            boolean flag= false;
            for(j=0;j<matrix.length;j++)
            {
                if (flag) { x++; matrix[i][j]=x;}
                if (!flag) 
                {x=Math.abs(i - j) + 1; matrix[i][j] = x; flag=true;}
            }
        }
        for (i=0; i<n; i++)
        {
            for(j=0; j<n; j++)
            System.out.print(matrix[i][j]+" ");
            System.out.println();
        }
    }
    public static void main (String[] args)
    {
         int n=4;
         Print();
}
1 

1 3 
4 2 

1 4 8 
6 2 5 
9 7 3 

 1  5 11 15 
 8  2  6 12 
13  9  3  7 
16 14 10  4 

 1  6 14 20 24 
10  2  7 15 21 
17 11  3  8 16 
22 18 12  4  9 
25 23 19 13  5 

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

  1  11  29  45  59  71  81  89  95  99 
 20   2  12  30  46  60  72  82  90  96 
 37  21   3  13  31  47  61  73  83  91 
 52  38  22   4  14  32  48  62  74  84 
 65  53  39  23   5  15  33  49  63  75 
 76  66  54  40  24   6  16  34  50  64 
 85  77  67  55  41  25   7  17  35  51 
 92  86  78  68  56  42  26   8  18  36 
 97  93  87  79  69  57  43  27   9  19 
100  98  94  88  80  70  58  44  28  10