import java.util.ArrayList; import java.util.List; /** * Created by bfy on 2018/9/19. * */ public class Test1 { public static void main(String[] args) { int[] a = new int[]{1,2,3,4,5,6,7,8,10,11}; List<ArrayList<Integer>> sums1 = findSums1(a, 6); for (List<Integer> li:sums1){ for (Integer i : li){ System.out.print(i); } System.out.println("-------------------"); } } public static List<ArrayList<Integer>> findSums1(int[] a, int n) { List<ArrayList<Integer>> list = new ArrayList(); for (int i = 0;i< a.length;i++){ if (n -a[i] > 0){ ArrayList<Integer> list1 = new ArrayList(); list1.add(a[i]); list = findSums1(a, n - a[i], list1, i + 1,list); } } return list; } /** * * @param a 數組 * @param n 和 * @param list1 list * @param p 從開始 * @param list 結果 * @return */ public static List<ArrayList<Integer>> findSums1(int[] a, int n,ArrayList<Integer> list1,int p, List<ArrayList<Integer>> list) { for (int j = p; j < a.length ; j++){ ArrayList<Integer> listp = (ArrayList)list1.clone(); if (n - a[j] > 0){ listp.add(a[j]); findSums1(a,n - a[j] ,listp,j+1,list); }else if (n - a[j] == 0){ listp.add(a[j]); list.add(listp); break; }else { break; } } return list; } }
一個含n個元素的集合A,給出一個數字m ,找出A 中所有元素之和爲m 的集合。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.