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);
}
}
}
}
无线深度探索求和(根据结果用给出的数字组合求和)
最新推荐文章于 2020-10-28 21:49:46 发布