recursion我需要使用和不使用任何循环编写代码,以找到K 是给定数字的backtracking方程的所有可能解。x1+x2+x3 = K和x1 , x2, x3之间是非零正整数1 - 10。
我的尝试:
public static int subSetSum(int i, int k, int A[]) {
int sum = A[0] + A[1] + A[2];
int noOfSolutions = 0;
if(k - sum < 0 || i >= A.length)
return 0;
if(k - sum == 0) {
System.out.println(A[0] + " + " + A[1] + " + " + A[2]);
noOfSolutions =+ 1; }
noOfSolutions = subSetSum(i+1,k,A);
int newA[] = A;
newA[i] = A[i]+1;
noOfSolutions = subSetSum(i,k,newA);
return noOfSolutions;
}
运行代码我只会得到一个解决方案。因此,如果尝试找到所有解决方案,6它只会打印出来1+1+4(0没有'解决方案)。
翻阅古今
相关分类