1~19这19个数字,任意多个数相加等于20的所有组合,不重复
代码如下
public class Demo1 {
public static int max = 19;
public static int sum = 20;
public static void main(String[] args) {
for (int i=1;i<max-1;i++) {
getStr("", 0, i);
}
}
public static void getStr(String str, int tempSum, int i) {
if (i > max) {
return;
}
if (i+tempSum==sum) {
System.out.println(str + "+" + i + "=" + sum);
} else if (i+tempSum>sum) {
return;
} else {
for (int j=i+1;j<max;j++) {
if ("".equals(str)) {
getStr(str+i, tempSum+i, j+1);
} else {
getStr(str+"+"+i, tempSum+i, j+1);
}
}
}
}
}