java 实现一组数任意个数相加等于 一个固定值 比如 int [] i = [1,2,3,4,5]; 固定值 6 输出 数组中任意相加等于6,不限制个数和重复。要求固定值参数化。求给力大神解决下,谢谢。
算法 Java
------解决方案--------------------
public static void main(String[] args) {
int[] a = { 1,3,4,5,8,7,8,10,34};
for (int n = 1; n <= a.length; n++) {
int[] b = new int[n];
submit(a, 0, 0, n, b);
}
}
public static void submit(int[] a, int c, int i, int n, int[] b) {
for (int j = c; j < a.length - (n - 1); j++) {
int sum = 0 ;
b[i] = a[j];
if (n == 1) {
//System.out.println();
for(int k=0;k<b.length;k++){
sum+= b[k];
}
if(sum==25){//在这里判断
System.out.println(Arrays.toString(b));
}
} else {
n--;
i++;
submit(a, j + 1, i, n, b);
n++;
i--;
}
}
}
------解决方案--------------------
import java.util.LinkedList;
import java.util.List;