告诉你什么是优雅的代码
程序员文章站
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
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(); } }