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);
            }
      }
}
}
}