내가 그것을 해결을 자바는 재귀 적 접근법을 사용한다. 먼저 프로그램은 모든 조합을 인쇄 한 다음 마침내 올바른 조합 (지정된 기준과 일치)을 제공합니다.
이 프로그램은 즉시 출력 당신이 질문에서 지정한대로
(2, 4, 6, 12)
을 제공합니다. 수득
public class Tackle {
static int[] ages = {2,3,4,5,6,7,8,9,10,11,12,13,14}; // Since the program uses a recursive function,
static StringBuffer sb = new StringBuffer(""); // the variables are declared as static
static int x=0,occurances=0;
static int sum,pdt=1,count=0;
static String[] instances = new String[100];
static void recurse(int a[], int k, int n) throws Exception
{
if(k==n) // This program obtains various combinations using binary technique
{
for(int i=0;i<n;i++)
if(a[i] == 1){
System.out.print(ages[i]+" "); // Displays all the combinations available
sum = sum + ages[i];
pdt = pdt * ages[i];
count++;
sb.append(String.valueOf(ages[i]+" "));
}
if(Math.pow(sum, 2) == pdt && count<8){ // Checking the criteria
instances[occurances++] = sb.toString();
}
sb = new StringBuffer("");
count = 0;
sum = 0;
pdt = 1;
System.out.println("");
}
else for(int i=0;i<=1;i++)
{
a[x++] = i;
recurse(a,k+1,n);
x--;
}
}
public static void main(String[] args) throws Exception {
int[] a = new int[10000];
recurse(a,0,ages.length);
if(occurances>0)
{
System.out.println("No of combinations matching: " + occurances);
for(int i=0;i<occurances;i++)
System.out.println("The combination of ages is [ " + instances[i] + "]");
}
else
System.out.println("No combination matches the criteria. ");
}
}
출력 SO 구체적 프로그래밍 질문 .. 이미 상기 링크 로직을 받고 전용된다
[All possible combinations are listed here]
No of combinations matching: 1
The combination of ages is [ 2 4 6 12 ]
이었다. '1.' 어떤 프로그래밍 언어로 질문에 접근하려고합니까? '2.' 프로그래밍 경험이 있습니까? – bonCodigo
@bonCodigo 네, 2 년의 프로그래밍 경험이 있습니다. C, C++ 및 Java에 능숙합니다. C++로 해봤지만 약간 길어 보입니다. 그래서 Java로 갈 것입니다. 그러나 여전히 스파크/아이디어를 시작할 수 없었습니다. –
그러면 올바른 프로그래밍 언어로 질문을 다시 시도하고 방해가되는 코드를 표시하는 것이 더 나을 것입니다 (또는 주요 로직 스 니펫 일 가능성이 높음). 귀하의 질문 :) – bonCodigo