作业帮 > 综合 > 作业

求出一堆数中和等于m的所有可能组合 JAVA

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/05 03:06:19
求出一堆数中和等于m的所有可能组合 JAVA
输入两个整数 n 和 m,从数列1,2,3.n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.
最好是用JAVA写,告诉思路也可以.
求出一堆数中和等于m的所有可能组合 JAVA
这题费了老劲了,可用递归来做.原理我就不说了,能看明白就看吧.算法如下(可能算法不优):
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test {
static List printUnique = new ArrayList();
public static void main(String[] args) {
cal(18,20,new ArrayList());
System.out.println(" 组合结果");
for(List result :printUnique){
for(Integer num :result){
System.out.print(num + " ");
}
System.out.println("");
}
}
public Test(){
}
public static void cal(Integer maxNum,Integer result,List chain){
if(result>=2 * maxNum) return;
if(result maxNum){
minNum = result - maxNum;
}
if(result == maxNum){
minNum = 1;
maxNum = maxNum -1;
}
if(result