신속하고 더러운 해결책은 인덱스 (두 차원 모두에서)가 배열에있는 숫자의 위치이고 값이 조합 인 2D 배열을 만드는 것일 수 있습니다. 이런 식으로 뭔가 : 당신은 지금 6 조합을 찾으려면
//int i[] = { 1, 3, 5}, operation is 'add'
//you have a 3x3 array here:
//\ |1 3 5 <- the original values at their corresponding indices for quick reference, the array is the bottom right 3x3 matrix
//--+------
//1 |2 4 6
//3 |4 6 8
//5 |6 8 10
int[][] a = new int[3][3];
//in a loop fill the array
, 당신이 예에서 (6 동등한 값 x 및 y 인덱스를 모든 값을 확인하고 얻을 수 : 0/2 , 1/1 및 2/0). 그런 다음 원래 배열의 해당 색인에서 숫자를 찾습니다 (예 : 0/2 -> 1 및 5, 1/1 -> 3 및 3,2/0 -> 5 및 1).
이것은 (특히 더 큰 배열의 경우) 신속하고 매우 불완전한 방법이며 원하는 것보다 많은 순열을 반환 할 수 있습니다 (0,2 및 2/0은 조작 add
과 동일 함). 그러나 이는 가능한 많은 작업 (예 : x = 1, y = 5 (결과 : 1) 및 x = 5, y = 1 (결과 : 5)에 대해 x y이 다를 수 있습니다.
정확하게 필요한 것, 감사합니다. – maru