标签:java
import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; public class Fff { public void calculate(List<BigDecimal> lis_obj, BigDecimal result) { List<String> bb = new ArrayList<String>(); for (int i = 0; i < lis_obj.size(); i++) { for (int j = i + 1; j < lis_obj.size(); j++) { BigDecimal tmp = new BigDecimal("0.0"); tmp = lis_obj.get(i).add(lis_obj.get(j)); if (tmp == result) { System.out.println(lis_obj.get(i).toString() + "-" + lis_obj.get(j).toString()); break; } else { bb.add(lis_obj.get(i).toString()); bb.add(lis_obj.get(j).toString()); dealData(tmp, j + 1, lis_obj.size(), lis_obj, result, bb); bb.clear(); } } } } public static void dealData(BigDecimal tmp, int k, int length, List<BigDecimal> lis_obj, BigDecimal result, List<String> bb) { BigDecimal tmp_add = new BigDecimal("0.0"); if (k < length) { for (int m = k; m < length; m++) { tmp_add = new BigDecimal("0.0"); tmp_add = tmp.add(lis_obj.get(m)); if (tmp_add.toString().equals(result.toString())) { StringBuffer sb_obj = new StringBuffer(); for (int i = 0; i < bb.size(); i++) { sb_obj.append(bb.get(i)); sb_obj.append("-"); } sb_obj.append(lis_obj.get(m)); System.out.println(sb_obj.toString()); } else { continue; } } tmp_add = tmp.add(lis_obj.get(k)); bb.add(lis_obj.get(k).toString()); if (k < length) { dealData(tmp_add, k + 1, length, lis_obj, result, bb); } } } }
标签:java
原文地址:http://blog.csdn.net/fuleidemo/article/details/41823733