计算机研究生复试上机题目:顺时针螺旋矩阵简单实现
研究生考试复试上机题目是个顺时针螺旋矩阵,下面提供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();
}
}
}