Мне нужна функция, которая строит следующую матрицу, принимая (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();
}
}
Ссылка на матричную логику: Логика
Что я пробовал до сих пор: я пытался сделать это другимКроме того, с использованием 10 секунд флагов и переменных INT, безуспешно.Самая чистая попытка была такая:
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();
}