欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

告诉你什么是优雅的代码

程序员文章站 2022-03-02 21:08:55
...
请投新手帖。
size = 5
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9



public class MagicCircle {
	int [][] numberCircle;
	int size;
	int n = 1;	
	public MagicCircle(int size){
		this.size = size;
		numberCircle = new int[size][size];
	}
	public void draw(){
		circle(0);
	}
	public void print(){
		for (int i = 0; i < size; i++) {
			for (int j = 0; j < size; j++) {
				System.out.print(numberCircle[i][j] + "\t");
			}
			System.out.println();
		}
	}
	
	public void circle(int start){	
		int end = size - start;
		//  |----->
		for(int i = start ; i < end; i++){
			numberCircle[start][i] = n++;
		}

		if(start + 1 >= end ){
			return;
		}
		// ---
		//  |
		//  |
		//  v
		for(int i = start + 1 ; i < end; i++){
			numberCircle[i][end-1] = n++;
		}
		// <-----|
		for(int i = end-2 ; i >= start; i--){
			numberCircle[end-1][i] = n++;
		}
		// ^
		// |
		// |
		//---
		for(int i = end-2 ; i >= start + 1; i--){
			numberCircle[i][start] = n++;
		}		
		circle(start+1);	
	}
	
	public static void main(String[] args) {
		int size = 5;
		MagicCircle demo = new MagicCircle(size);
		demo.draw();
		demo.print();
	}
}




相关标签: J#