이 기사에서는 Java에서 출력 루프백 번호 (나선형 행렬)를 구현하는 방법에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
나는 전에 그것을 보았지만 나는 그것을 만들지 않았다. 나는 그날 포럼에 작별 인사를 보았고 영감이왔다. 너무 놀랍습니다
복잡성은 O (n) 인 것 같습니다.
저장하십시오
패키지 데모; 공개 클래스 snakematrixdemo {public static void main (string [] args) {int m = 5;/* row*/int n = 5;/* 열*/int [] [] pos = new int [m] [n];/* 위치*/*** 위치 구조는 다음과 같습니다. [0] [0], [0] [1], [0] [1], [0] [2], [0] [3], [0] [4] * * [1] [0], [1] [1], [1] [2], [1] [3], [1] [4] * * [2] [2] [1], [2] [2] [3], [4], [3] [0], [3] [1], [3] [2], [3] [3] [4] * [4] [0], [4] [1], [4] [2], [4] [3], [4] [4] */ int count = 0; int r = 0, c = 0;/* r : 라인 첨자 C : 열 첨자 pos [r] [c]는 위의 위치에 해당합니다*//* 방향, 첫 번째 c ++, 아래로 r ++, 왼쪽 c--, up r-*/ final int up = 1; 최종 int down = -1; 최종 int 왼쪽 = 2; 최종 int right = -2; int dir = right;/* 시작 방향*/ int cir = 1;/* 몇 라운드의 과제*/ while (count <m* n) {count ++; pos [r] [c] = count;/* 할당*/ switch (dir) {case 오른쪽 : if (c <n -cir) {/* 현재 줄의 오른쪽에 할당이 없습니다*/ c ++; } else {dir = down; R ++; } 부서지다; 사례 다운 : if (r <m -cir) {/* 현재 열 아래에 할당이 아직 없습니다*/ r ++; } else {dir = 왼쪽; 기음--; } 부서지다; 왼쪽 사례 : if (c> cir-1) {/* 현재 줄의 왼쪽에 할당이 아직 없습니다*/ c-; } else {dir = up; 아르 자형--; } 부서지다; CASE UP : if (r> cir) {/* 현재 열에 할당이 없습니다*/ r-; } else {cir ++;/* 원을 할당*/ dir = 오른쪽; C ++; } 부서지다; }} system.out.println ( "wulin.com 테스트 결과 :"); / * 출력 */ for (int i = 0; i <m; i ++) {for (int j = 0; j <n; j ++) {if (pos [i] [j] <10) {system.out.print (pos [i] [j]+""+""); } else {system.out.print (pos [i] [j] + ""); }} system.out.println (); }}}실행 결과 :
Java 알고리즘에 대한 자세한 내용은이 사이트에 관심이있는 독자들이 주제를 볼 수 있습니다. "Java 데이터 구조 및 알고리즘 자습서", "Java Operation Dom Node Tips 요약", "Java 파일 및 디렉토리 작동 팁 요약"및 "Java Cache Operation Tips의 요약"을 볼 수 있습니다.
이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.