如何从左下角开始以螺旋形式打印字母表



如果我想在矩阵中打印这样的东西:

G F E
H I D
A B C

我该怎么做?

我目前拥有的代码如下:

A B C
H I D
G F E

我希望螺旋线从矩阵的左下角开始,向左旋转。

这是我目前使用数字的代码:

int n = sc.nextInt();
int[][] spiral = new int[n][n];
int value = 1;
int minCol = 0;  
int maxCol = n-1;      
int minRow = 0;  
int maxRow = n-1;
while (value <= n*n)
{
for (int i = minCol; i <= maxCol; i++)
{
spiral[minRow][i] = value;
value++;
}

for (int i = minRow+1; i <= maxRow; i++) 
{ 
spiral[i][maxCol] = value; 
value++; 
} 
for (int i = maxCol-1; i >= minCol; i--)
{
spiral[maxRow][i] = value;        
value++;
}

for (int i = maxRow-1; i >= minRow+1; i--) 
{
spiral[i][minCol] = value;
value++;
}
minCol++;      
minRow++;
maxCol--;
maxRow--;
}
for (int i = 0; i < spiral.length; i++)
{
for (int j = 0; j < spiral.length; j++)
{
System.out.print(spiral[i][j]+ "t");
}

System.out.println();
}

更改

for (int i = 0; i < spiral.length; i++)
{
for (int j = 0; j < spiral.length; j++)
{
System.out.print(spiral[i][j]+ "t");
}

System.out.println();
}

for (int i = spiral.length - 1; i >= 0; i--)
{
for (int j = 0; j < spiral.length; j++)
{
System.out.print(spiral[i][j]+ "t");
}

System.out.println();
}

注意第一个for循环。它以的相反顺序打印行

最新更新