九宫格算法
- public class sjjg {
- public static void main(String[] args) {
- int n = 5;
- // 0:向右,1:向下,2:向左,3:向上
- int direction = 0;
- // 行,列
- int row = 0, col = 0;
- int num = 0;
- int[] array = new int[n * n];
- while (array[row * n + col] == 0) {
- num++;
- array[row * n + col] = num;
- switch (direction) {
- case 0:
- col++;
- break;
- case 1:
- row++;
- break;
- case 2:
- col--;
- break;
- case 3:
- row--;
- break;
- }
- if (row == n || col == n || row == -1 || col == -1
- || array[row * n + col] != 0) {
- direction++;
- if (direction == 4)
- direction = 0;
- switch (direction) {
- case 0:
- row++;
- col++;
- break;
- case 1:
- row++;
- col--;
- break;
- case 2:
- row--;
- col--;
- break;
- case 3:
- row--;
- col++;
- break;
- }
- }
- }
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < n; j++) {
- System.out.printf("%-3s", array[i * n + j]);
- }
- System.out.println();
- }
- }
- }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。