이 기사에서는 Java의 블랙홀 수를 계산하는 방법에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
34256, 34256, 숫자 숫자를 방해 및 재 배열하여 최대 숫자 : 65432와 최소 수 23456.이 두 숫자의 차이를 찾아서 다음과 같은 숫자를 찾으십시오. 이렇게하면 숫자가 특정주기 (디지털 블랙홀이라고 함)로 떨어집니다.
예를 들어, 이제 방금 숫자 가이주기에 속할 것입니다 : [82962,75933, 63954, 61974].
5 자리와 출력으로 가능한 모든 루프 원을 찾으려면 프로그램을 작성하십시오. 각 루프 원은 1 줄을 차지합니다. 5 자리 숫자가 모두 동일하면 루프 원은 [0]이며 무시할 수 있습니다. 루프 원의 출력 형식은 다음과 같이 모방됩니다.
[82962,75933, 63954, 61974]
숫자 순서는 무시할 수 있습니다.
test.java :
공개 클래스 테스트 {static int r = 0; static int b [] = new int [16]; static int c [] = new int [5]; static int sort (int n, boolean boo) // 정렬 함수 {int i, j, sum = 0, temp; int a [] = 새로운 int [5]; for (i = 0; i <5; i ++) {a [i] = n%10; N/= 10; } for (j = 0; a [i] = a [i+1]; a [i+1] = 온도; } if (a [i]> a [i+1] &&! boo) {temp = a [i]; a [i] = a [i+1]; a [i+1] = 온도; }} (i = 0; i <5; i ++) sum+= a [i]*(int) math.pow (10,4-i); 반환 합;} 정적 부울 부 (int d []) // 판사 함수 {int n, t, q, i, j; 부울 플래그 = 참; (i = 0; i <16; i ++) for (J = i+1; D [1] = J; n = ji; (t = i; t <= j; t ++) if (c [q] == b [t]) for (c [q] == b [t]) for (q = 0; q <= r; q ++) for (c [q [q] == b [t] farge = false; // 1 차원 배열을 사용하여 루프 원의 한 자리 숫자를 저장합니다 (모든 숫자는 OK, 첫 번째 숫자가 선택됩니다) C [r ++] = b [i]; 원래 1 차원 배열에 저장된 값과는 달리 루프 원 중 하나를 가져 가서 리턴 플래그를 저장하십시오. } return flag;} public static void main (String [] args) {int n, m, w, t, p; int r = 1; 부울 플래그 = 거짓; int d [] = 새로운 int [2]; System.out.println ( "wulin.com 테스트 결과 :"); (m = 10000; m <100000; m ++) {n = m; for (p = 0; p <16; p ++) {w = sort (n, true) -sort (n, false); b [p] = w; n = w; } if (boo (d)) // 다른 루프 원을 출력 {system.out.printf ( "["); for (t = d [0]; t <d [1] -1; t ++) system.out.printf ( "%d,", b [t]); System.out.printf ( "%d", b [t]); System.out.printf ( "]/n"); }}}}실행 결과 :
Java 알고리즘에 대한 자세한 내용은이 사이트에 관심이있는 독자들이 주제를 볼 수 있습니다. "Java 수학 운영 기술 요약", "Java 데이터 구조 및 알고리즘의 자습서", "Java 운영 Dom Node Skills 요약", "Java 파일 및 디렉토리 운영 기술 요약"및 "Java Cache 운영 기술 요약"및 "Java Cache 운영 기술 요약"을 볼 수 있습니다.
이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.