MyException - 我的异常网
当前位置:我的异常网» J2EE » 100分求个算法,语言不限 先到先得,该怎么处理

100分求个算法,语言不限 先到先得,该怎么处理(2)

www.myexceptions.net  网友分享于:2013-04-08  浏览:3次

for (int i : a) {
sum += i;
}
if (sum == total) {
print(a);
}
for (int i = 0; i < a.length - 1; i++) {
List<int[]> list = combination(a, i + 1);
for (int[] arr : list) {
sum = 0;
for (int j : arr) {
sum += j;
}
if (sum == total) {
print(arr);
}
}
}
}

public static void main(String[] args) {
AssemblyDemo c = new AssemblyDemo();
int[] a = { 1, 3, 4, 5, 8, 7, 8, 10, 34 };
c.printResult(a, 25);
}
}

------解决方案--------------------

import java.util.Arrays;

public class Test {
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--;
}
}
}
}

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有