public static void main(String[] args) {
     int a = 34;
     int b = 50;
     for (int i = 1; i < a; i++) {
for (int j = i; j < b; j++) {
System.out.println(i+"+"+j+"+"+(100-i-j)+"=100");
}
}
}

解决方案 »

  1.   

    扩展一下,可以对应3个正数的任意和
        public static void main(String[] args) {
            int sum = 100; //可以修改这里为任意和
            for (int i = 1; i <= sum/3; i++) {
                for (int j = i; j <= (sum-i)/2; j++) {
                    System.out.println(i+"+"+j+"+"+(sum-j)+"="+sum);
                }
            }
        }//再扩展一下,对应多个正数的
        public static void main(String[] args) {
            int sum = 100; 
            int n = 5; //可以修改这里为任意个正数
            int tmp = 0;
            int[] idx = new int[n];
            for (int i=0; i<n-1; i++) {
                idx[i] = 1;
                tmp += idx[i];
                System.out.printf("%d+", idx[i]);
            }
            idx[n-1] = sum-tmp;
            System.out.printf("%d=%d\r\n", idx[n-1], sum);        while (true) {
                idx[n-2]++;
                for (int i=n-2; i>0; i--) {
                    tmp = 0;
                    for (int j=0; j<i; j++) {tmp+=idx[j];}
                    if (idx[i] > (sum-tmp)/(n-i)) {
                        idx[i-1]++;
                    }
                }
                if (idx[0] > sum/n) {break;}
                tmp = 0;
                for (int i=1; i<n-1; i++) {
                    tmp += idx[i-1];
                    if (idx[i] > (sum-tmp)/(n-i)) {
                        idx[i] = idx[i-1];
                    }
                }
                tmp = 0;
                for (int i=0; i<n-1; i++) {
                   tmp += idx[i];
                   System.out.printf("%d+", idx[i]);
                }
                idx[n-1] = sum-tmp;
                System.out.printf("%d=%d\r\n", idx[n-1], sum);
            }
        }