计算机研究生复试上机题目:顺时针螺旋矩阵简单实现

来源:互联网 发布:冰川网络股票代码 编辑:程序博客网 时间:2024/05/16 14:40

研究生考试复试上机题目是个顺时针螺旋矩阵,下面提供java的简单实现,以供需要者参考,主要考察二维数组,循环的使用,效果如下图.


package com.m;


public class Round {
    private int num;
    private final static int MAX = 5;
    Round(int num) {
        this.num = num;
    }
    public static void main(String[] args) {
        Round mRound = new Round(5);
        mRound.paint();
    }
/*    123
    894
    765*/
    private void paint() {
        int data[][] = new int[MAX][MAX];
        int count=0,row=0,col=0,increament=0;
        while(count<num*num){
        while(col<num-increament &&count<=num*num){
            data[row][col++]=++count;
        }
        col--;
        increament++;
        while(row<num-increament&&count<=num*num){
            data[++row][col]=++count;
        }
        while(col>increament-1 &&count<=num*num){
            data[row][--col]=++count;    
        }
        while(row>increament&&count<=num*num){
            data[--row][col]=++count;
        }
         col++;
        }
        printData(data,num);
    }
    private void printData(int data[][],int num){
        for (int i = 0; i < num; i++) {
            for (int j = 0; j < num; j++) {
                if(data[i][j]>=10){
                    System.out.print(data[i][j] + " ");    
                }else{
                    System.out.print(" "+data[i][j] + " ");    
                }
                
            }
            System.out.println();
        }
    }
}
阅读全文
0 0