输入两个整数m,n,输出m*n的逆时针形式的螺旋矩阵,如2  3
                                                   1  6  5
                                                   2  3  4
                                                   

解决方案 »

  1.   

    import java.util.*;public class AnySpinMatrixTest { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner s=new Scanner(System.in);
    System.out.println("请输入两个正整数:");
    int original_row=s.nextInt();
    int original_col=s.nextInt();
    int row=original_row;
    int col=original_col;
    int Array[][]=new int[row][col];
    int count=0;//控制阵脚条件。
    int i=0;
    int j=0;
    int m=1;
    int status=1;
    while(m<=original_row*original_col)
    {
    Array[i][j]=m;
    count++;
    m++;
    switch(status)//分上(1)、下(2)、左(3)、右(4)四种情况。
    {
    case 1:
    if(count==row)
    {
    col--;
    status=2;
    j++;
    count=0;
    }
    else
    i++;
    break;
    case 2:
    if(count==col)
    {
    row--;
    status=3;
    i--;
    count=0;
    }
    else
    j++;
    break;
    case 3:
    if(count==row)
    {
    col--;
    status=4;
    j--;
    count=0;
    }
    else
    i--;
    break;
    case 4:
    if(count==col)
    {
    row--;
    status=1;
    i++;
    count=0; }
    else
    j--;
    break;
    }
    }
    System.out.println(original_row+"*"+original_col+"螺旋阵为:");
    for(i=0;i<original_row;i++){
    for(j=0;j<original_col;j++){
    System.out.print(Array[i][j]+"\t");
    }
    System.out.println();
    }
    }}