java 求数组子集

来源:互联网 发布:刘炳森手机字体软件 编辑:程序博客网 时间:2024/05/17 08:55

给定数组为{1,2,3,4,5,6}

求出数组中和为7的子集

输出为自己中各元素相乘之和最大的结果

package nuaa.ldm;import java.util.Arrays;import java.util.Scanner;public class Main {    static int[] flag = new int[100];    static int index = 0;    static int max = -1;    public static void numGroup(int[] arr, int start, int length, int sum) {        if (sum == 0) {        int shanghai = 1;            for (int j = 0; j < index; j++) {                shanghai*=flag[j];            }            if(shanghai>max)            max = shanghai;        } else {            for (int i = start; i < length; i++) {                flag[index++] = arr[i];                numGroup(arr, i + 1, length-1, sum - arr[i]);            }        }        index--;    }    public static void main(String[] args) {    int [] arr = {1,2,3,4,5,6};        Arrays.sort(arr);        numGroup(arr, 0, arr.length, 7);        System.out.println(max);    }}


0 0