Java 按螺旋顺序打印二维阵列
可能重复:Java 按螺旋顺序打印二维阵列,java,arrays,spiral,Java,Arrays,Spiral,可能重复: 如何使用JAVA以螺旋顺序打印二维数组?请帮忙,我不知道 示例阵列: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 输出: 1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10 以下是我尝试过的: 公共静态void main(字符串[]args){ int[][]值={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}; 对于(inti=(values.leng
如何使用JAVA以螺旋顺序打印二维数组?请帮忙,我不知道 示例阵列:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
输出:
1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10
以下是我尝试过的:
公共静态void main(字符串[]args){
int[][]值={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16};
对于(inti=(values.length*values[0].length)-1,j=0;i>0;i--,j++){
对于(int k=j;kj;k--){
系统输出打印(值[i][k]);
}
对于(int k=i;k>j;k--){
系统输出打印(值[k][j]);
}
}
}
无效打印螺旋线(int[]arr,int size)
{
对于(int l=0;lmin;i--)
System.out.print(“\t”+arr[i][max].ToString());
对于(int j=max;j>min;j--)
System.out.print(“\t”+arr[min][j].ToString());
}
//中心为特例:避免打印4次。
如果(大小%2==1)
System.out.print(“\t”+arr[size/2][size/2].ToString());
}
(免责声明:仅在C#上试用)void PrintSpiral(int[]arr,int size)
{
对于(int l=0;lmin;i--)
System.out.print(“\t”+arr[i][max].ToString());
对于(int j=max;j>min;j--)
System.out.print(“\t”+arr[min][j].ToString());
}
//中心为特例:避免打印4次。
如果(大小%2==1)
System.out.print(“\t”+arr[size/2][size/2].ToString());
}
(免责声明:仅在C#上试用过)以下是一些Java解决方案:
public static final int X_SIZE = 4;
public static final int Y_SIZE = 4;
public static void main(String[] args) {
int[][] array = new int[X_SIZE][Y_SIZE];
for(int i = 0; i < X_SIZE; i++){
for (int j = 0; j < Y_SIZE; j++){
array[i][j] = i * X_SIZE + (j + 1);
System.out.print(array[i][j] + " ");
}
System.out.println();
}
System.out.println("************");
System.out.println("Spiral");
spiralPrint(X_SIZE, Y_SIZE, array);
}
public static void spiralPrint(int xSize, int ySize, int matrix[][]){
int i, k = 0, l = 0;
xSize--; ySize--;
while(k <= xSize && l <= ySize){
for(i = l; i <= ySize; ++i) {
System.out.print(matrix[k][i]+ " ");
}
k++;
for(i = k; i <= xSize; ++i) {
System.out.print(matrix[i][ySize] + " ");
}
ySize--;
for(i = ySize; i >= l; --i) {
System.out.print(matrix[xSize][i] + " ");
}
xSize--;
for(i = xSize; i >= k; --i) {
System.out.print(matrix[i][l] + " ");
}
l++;
}
}
public static final int X_SIZE=4;
公共静态最终整数Y_大小=4;
公共静态void main(字符串[]args){
int[][]数组=新int[X_大小][Y_大小];
对于(int i=0;i 而(k以下是一些Java解决方案:
public static final int X_SIZE = 4;
public static final int Y_SIZE = 4;
public static void main(String[] args) {
int[][] array = new int[X_SIZE][Y_SIZE];
for(int i = 0; i < X_SIZE; i++){
for (int j = 0; j < Y_SIZE; j++){
array[i][j] = i * X_SIZE + (j + 1);
System.out.print(array[i][j] + " ");
}
System.out.println();
}
System.out.println("************");
System.out.println("Spiral");
spiralPrint(X_SIZE, Y_SIZE, array);
}
public static void spiralPrint(int xSize, int ySize, int matrix[][]){
int i, k = 0, l = 0;
xSize--; ySize--;
while(k <= xSize && l <= ySize){
for(i = l; i <= ySize; ++i) {
System.out.print(matrix[k][i]+ " ");
}
k++;
for(i = k; i <= xSize; ++i) {
System.out.print(matrix[i][ySize] + " ");
}
ySize--;
for(i = ySize; i >= l; --i) {
System.out.print(matrix[xSize][i] + " ");
}
xSize--;
for(i = xSize; i >= k; --i) {
System.out.print(matrix[i][l] + " ");
}
l++;
}
}
public static final int X_SIZE=4;
公共静态最终整数Y_大小=4;
公共静态void main(字符串[]args){
int[][]数组=新int[X_大小][Y_大小];
对于(int i=0;i while(k)related:这是做作业用的吗?到目前为止你试过什么?related:这是做作业用的吗?到目前为止你试过什么?这是坏的,只有当矩阵宽度等于高度时才起作用。这是坏的,只有当矩阵宽度等于高度时才起作用
public static final int X_SIZE = 4;
public static final int Y_SIZE = 4;
public static void main(String[] args) {
int[][] array = new int[X_SIZE][Y_SIZE];
for(int i = 0; i < X_SIZE; i++){
for (int j = 0; j < Y_SIZE; j++){
array[i][j] = i * X_SIZE + (j + 1);
System.out.print(array[i][j] + " ");
}
System.out.println();
}
System.out.println("************");
System.out.println("Spiral");
spiralPrint(X_SIZE, Y_SIZE, array);
}
public static void spiralPrint(int xSize, int ySize, int matrix[][]){
int i, k = 0, l = 0;
xSize--; ySize--;
while(k <= xSize && l <= ySize){
for(i = l; i <= ySize; ++i) {
System.out.print(matrix[k][i]+ " ");
}
k++;
for(i = k; i <= xSize; ++i) {
System.out.print(matrix[i][ySize] + " ");
}
ySize--;
for(i = ySize; i >= l; --i) {
System.out.print(matrix[xSize][i] + " ");
}
xSize--;
for(i = xSize; i >= k; --i) {
System.out.print(matrix[i][l] + " ");
}
l++;
}
}