写一个算法计算任意数的和相加等于6
如题,有1,3,2,4,5这几个数字,把这几个数相加结果等于6
结果可以是
1,3,2
2,4
1,5
下面的代码的结果有问题,帮改改
int result=6;
int array [] = new int[]{1,3,2,4,5};
for(int i=0;i<array.length;i++){
int temp = 0;
for(int j=i;j<array.length;j++){
temp = temp+array[j];
if(temp==result){
for(int k=i;k<=j;k++){
System.out.print(" "+array[k]);
}
System.out.println();
}
}
}
//result
// 1 3 2
// 2 4
public Map get(int result,Map<String,Object> map,boolean flag){
int array [] = new int[]{1,3,2,4,5};
for(int i=0;i<array.length;i++){
int value=result-array[i];
if((value!=array[i]
[解决办法]
flag) && value>0){
for(int j=0;j<array.length;j++){
if(value==array[j]){
if(!map.containsKey(String.valueOf(array[i])) && !flag){
map.put(String.valueOf(value), array[i]);
}else if(flag){
if(result>array[i] && array[i]>array[j]){
map.put(result+" "+array[i], array[j]);
}
}
}else{
int two=value-array[j];
if(two>0){
if(value+array[j]<6){
get(two,map,true);
}
}
}
}
}
}
return map;
}
public static void main(String[] args) throws JDOMException, IOException{
TmsAssignOrderOldNewInterfaceImpl ei=new TmsAssignOrderOldNewInterfaceImpl();
Map<String,Object> map=new HashMap<String,Object>();
map=ei.get(6, map,false);
for(String key:map.keySet()){
System.out.println(key+" "+map.get(key));
}
}