输入:X1,X2,X3,X4,X5,X6,X7,X8,X9
求:X10
二元求法:X10=X1+X9,X10=X2+X8,X10=X3+X7等等
三元求法:X10=X1+X2+X7,X10=X1+X3+X6,X10=X7+X8-X5等等
四元求法:类推,前提 下标的数字不论加减要等于10   
输出所有的可能性,且不重复,输出结果如:X1+X9=?import java.util.Scanner;public class ZhuHe {
    public static int[] shu = new int[11];
    public static int[] shuTemp = {0,1,2,3,4,5,6,7,8,9,10};
    public static int[] temp = new int[11];
    public static Character[] fuhao = new Character[11];
    public static boolean flag = false;    public static void dfs(int deep, int sum, int partsum, Character[] backfuhao) {
        Character[] back = new Character[11];
        System.arraycopy(backfuhao, 0, back, 0, backfuhao.length);
        if (flag) {
            return;
        }
        if (deep >= sum) {
            if (partsum == shuTemp[10]) {
                System.arraycopy(back, 0, fuhao, 0, back.length);
                flag = true;
            }
        } else {
            back[deep] = '+';
            dfs(deep + 1, sum, partsum + shuTemp[temp[deep + 1]], back);
            back[deep] = '-';
            dfs(deep + 1, sum, partsum - shuTemp[temp[deep + 1]], back);
        }    }    public static int combine(int n, int m, int num) {
        int i, j, s;
        if (n < m) {
            return 0;
        } else if (m < 1) {
            s = 0;
            for (i = 1; i < num; i++) {
                for (j = i + 1; j <= num; j++) {
                    if (shu[temp[i]] == shu[temp[j]]) {
                        return 0;
                    }
                }
            }
            Character[] backfuhao = new Character[11];
            dfs(1, num, shuTemp[temp[1]], backfuhao);
            if (flag) {
             int numtemp=0;
                for (i = 1; i < num; i++) {
                    System.out.print("X" + shuTemp[temp[i]] + fuhao[i].toString());
                    numtemp=numtemp+shu[shuTemp[temp[i]]];
                }
                numtemp=numtemp+shu[shuTemp[temp[i]]];
                System.out.println("X" + shuTemp[temp[num]] + "=" + numtemp);
                
               
                
            }
            flag = false;
            dfs(1, num, -shuTemp[temp[1]], backfuhao);
            if (flag) {
             int numtemp=0;
                for (i = 1; i < num; i++) {
                    if (i != 1){
                        System.out.print("X" + shuTemp[temp[i]]
                                + fuhao[i].toString());
                    
                        numtemp=numtemp+shu[shuTemp[temp[i]]];
                    } else {
                        System.out.print("-X" + shuTemp[temp[i]]
                                + fuhao[i].toString());
                        numtemp=numtemp-shu[shuTemp[temp[i]]];
                    }
                }
                numtemp=numtemp+shu[shuTemp[temp[i]]];
                System.out.println("X" + shu[temp[num]] + "=" + numtemp);
            }
            flag = false;
        } else {
            for (j = n; j >= m; j--) {
                temp[m] = j;
                combine(j - 1, m - 1, num);
            }
        }
        return 0;
    }    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入X1,至X9:");
        for (int i = 1; i <= 9; i++) {
            shu[i] = sc.nextInt();
        }
//        System.out.println("请输入X10");
//        shu[10] = sc.nextInt();
        for (int i = 2; i <= 9; i++)
            {
            System.out.println(i+"元求法如下:"); 
            combine(9, i, i);
            }
    }
}

解决方案 »

  1.   

    输入X1~X9:27.44.77.99.127.145.160.175.203 
    输出结果:
    2元求法如下:
    X1+X9=230
    X2+X8=219
    X3+X7=237
    X4+X6=244
    3元求法如下:
    -X7+X8+X203=218
    -X6+X7+X203=218
    -X5+X6+X203=221
    -X4+X5+X203=231
    -X3+X4+X203=225
    -X2+X3+X203=236
    -X1+X2+X203=220
    -X5+X7+X175=208
    -X4+X6+X175=221
    -X3+X5+X175=225
    -X2+X4+X175=230
    -X1+X3+X175=225
    -X3+X6+X160=228
    -X2+X5+X160=243
    -X1+X4+X160=232
    X1+X2+X7=231
    -X1+X5+X145=245
    X1+X3+X6=249
    X1+X4+X5=253
    X2+X3+X5=248
    4元求法如下:
    X4+X7+X8-X9=637
    X2+X7-X8+X9=582
    X5+X6+X8-X9=650
    X3+X6-X8+X9=600
    -X1-X6+X8+X203=496
    X4+X5-X8+X9=604
    -X2-X5+X8+X203=461
    -X3-X4+X8+X203=400
    X2+X6-X7+X9=552
    X3+X5-X7+X9=567
    -X1-X5+X7+X203=463
    -X2-X4+X7+X203=418
    X2+X5-X6+X9=519
    X3+X4-X6+X9=524
    -X1-X4+X6+X203=420
    -X2-X3+X6+X203=381
    X2+X4-X5+X9=473
    -X1-X3+X5+X203=380
    X2+X3-X4+X9=423
    -X1-X2+X4+X203=319
    X5+X6+X7-X8=607
    X3+X6-X7+X8=557
    X1-X6+X7+X8=507
    X4+X5-X7+X8=561
    -X1-X4+X7+X175=407
    -X2-X3+X7+X175=368
    X3+X5-X6+X8=524
    X1-X5+X6+X8=474
    -X1-X3+X6+X175=370
    X3+X4-X5+X8=478
    X1-X4+X5+X8=428
    -X1-X2+X5+X175=319
    X1-X3+X4+X8=378
    X1-X2+X3+X8=323
    X4+X5-X6+X7=531
    X2-X5+X6+X7=476
    X1-X4+X6+X7=431
    -X1-X2+X6+X160=322
    X2-X4+X5+X7=430
    X1-X3+X5+X7=391
    X2-X3+X4+X7=380
    X1-X2+X4+X7=330
    X3-X4+X5+X6=448
    X2-X3+X5+X6=393
    X1-X2+X5+X6=343
    -X1+X2+X3+X145=239
    -X2+X3+X4+X127=259
    -X1+X2+X4+X127=243
    X1+X2+X3+X4=247
    5元求法如下:
    -X4+X6+X7-X8+X203=584
    -X2+X6+X7+X8-X203=639
    -X3+X5+X7-X8+X203=588
    -X1+X5+X7+X8-X203=638
    -X2+X4+X7-X8+X203=593
    X1+X3+X7+X8-X9=642
    -X1+X3+X7-X8+X203=588
    X4-X5-X6+X8+X9=749
    -X2+X5+X6-X8+X203=606
    X3-X4-X6+X8+X9=699
    X1+X4+X6+X8-X9=649
    -X1+X4+X6-X8+X203=595
    X2+X3+X6+X8-X9=644
    X1+X2+X6-X8+X9=594
    X2+X4+X5+X8-X9=648
    X1+X3+X5-X8+X9=609
    X2+X3+X4-X8+X9=598
    -X1-X2-X4+X8+X203=494
    -X3+X5+X6-X7+X203=558
    X1+X5+X6+X7-X9=662
    X2+X4+X6+X7-X9=651
    -X2+X4+X6-X7+X203=563
    -X1+X3+X6-X7+X203=558
    X3+X4+X5+X7-X9=666
    -X1+X4+X5-X7+X203=562
    X2-X3-X5+X7+X9=611
    X1+X2+X5-X7+X9=561
    X1+X3+X4-X7+X9=566
    -X1-X2-X3+X7+X203=457
    -X2+X4+X5-X6+X203=530
    -X1+X3+X5-X6+X203=525
    X2-X3-X4+X6+X9=568
    X1+X2+X4-X6+X9=518
    -X1+X3+X4-X5+X203=479
    X1+X2+X3-X5+X9=478
    -X4+X5-X6+X7+X175=508
    -X2+X5+X6-X7+X175=563
    -X3+X4-X6+X7+X175=502
    X1+X4+X6+X7-X8=606
    -X1+X4+X6-X7+X175=552
    X2+X3+X6+X7-X8=601
    -X2+X3-X6+X7+X175=513
    X1+X2+X6-X7+X8=551
    -X1+X2-X6+X7+X175=497
    X2+X4+X5+X7-X8=605
    X1+X3+X5-X7+X8=566
    X2+X3+X4-X7+X8=555
    X1-X2-X4+X7+X8=505
    X3+X4+X5+X6-X8=623
    -X3+X4-X5+X6+X175=469
    -X1+X4+X5-X6+X175=519
    -X2+X3-X5+X6+X175=480
    X1+X2+X5-X6+X8=518
    -X1+X2-X5+X6+X175=464
    X1+X3+X4-X6+X8=523
    X1-X2-X3+X6+X8=468
    -X2+X3-X4+X5+X175=434
    X1+X2+X4-X5+X8=472
    -X1+X2-X4+X5+X175=418
    X1+X2+X3-X4+X8=422
    -X1+X2-X3+X4+X175=368
    X2+X4+X5+X6-X7=575
    -X2+X4-X5+X6+X160=487
    X1+X3+X5-X6+X7=536
    -X1+X3-X5+X6+X160=482
    X2+X3+X4-X6+X7=525
    -X2+X3-X4+X6+X160=437
    -X1+X2-X4+X6+X160=421
    X1+X3+X4-X5+X7=490
    -X1+X3-X4+X5+X160=436
    -X1+X2-X3+X5+X160=381
    X2+X3+X4-X5+X6=492
    -X2-X3+X4+X5+X145=404
    X1+X2-X4+X5+X6=442
    X1+X2-X3+X4+X6=392
    -X1-X2+X3+X4+X145=338
    6元求法如下:
    X3+X5-X6+X7-X8+X9=887
    -X3-X5-X6+X7+X8+X203=733
    X1+X5-X6-X7+X8+X9=837
    -X1-X5+X6-X7+X8+X203=783
    X2+X4-X6-X7+X8+X9=826
    -X2-X4+X6-X7+X8+X203=738
    X1-X3+X6+X7+X8-X9=787
    -X1-X3+X6+X7-X8+X203=733
    X3+X4-X5+X7-X8+X9=841
    X1+X4-X5-X7+X8+X9=791
    -X1-X4+X5-X7+X8+X203=737
    X2+X3-X5-X7+X8+X9=786
    -X2-X3+X5-X7+X8+X203=698
    X1-X2+X5+X7+X8-X9=736
    -X1-X2+X5+X7-X8+X203=682
    X1+X3-X4-X7+X8+X9=741
    -X1-X3+X4-X7+X8+X203=687
    X1+X2-X3-X7+X8+X9=686
    -X1+X2+X3+X7+X8-X203=632
    X2-X4+X5+X6-X8+X9=793
    -X2-X4+X5-X6+X8+X203=705
    X1+X3-X5-X6+X8+X9=754
    X2-X3+X4+X6-X8+X9=743
    -X2+X3+X4+X6+X8-X203=655
    X1+X2-X4-X6+X8+X9=693
    -X1+X2+X4+X6+X8-X203=639
    -X1+X3+X4+X5+X8-X203=654
    X1+X2+X3+X5+X8-X9=653
    -X1+X2+X3+X5-X8+X203=599
    X3+X4-X5+X6-X7+X9=811
    -X3+X4+X5+X6+X7-X203=657
    X1+X4-X5-X6+X7+X9=761
    -X1-X4+X5-X6+X7+X203=707
    X2+X3-X5-X6+X7+X9=756
    -X2+X3+X5+X6+X7-X203=668
    -X1+X2+X5+X6+X7-X203=652
    X1+X3-X4-X6+X7+X9=711
    -X1+X3+X4+X6+X7-X203=657
    X1+X2+X3+X6+X7-X9=656
    -X1-X2+X3-X6+X7+X203=602
    X2-X3+X4+X5-X7+X9=710
    -X2-X3+X4-X5+X7+X203=622
    X1+X2+X4+X5+X7-X9=660
    -X1+X2+X3+X4-X7+X203=556
    X1+X3+X4+X5+X6-X9=678
    -X1-X3+X4-X5+X6+X203=624
    X1+X2-X3-X5+X6+X9=623
    -X1-X2+X3-X5+X6+X203=569
    X1+X2-X3-X4+X5+X9=577
    -X1-X2+X3-X4+X5+X203=523
    X2+X4-X5-X6+X7+X8=750
    -X2-X4-X5+X6+X7+X175=662
    X1-X3+X5+X6-X7+X8=711
    -X1-X3+X5-X6+X7+X175=657
    X2+X3-X4-X6+X7+X8=700
    -X2+X3+X4+X6+X7-X175=612
    X1-X2+X4+X6-X7+X8=650
    -X1+X2+X4+X6+X7-X175=596
    X1+X3-X4-X5+X7+X8=665
    -X1+X3+X4+X5+X7-X175=611
    X1+X2+X3+X5+X7-X8=610
    -X1+X2+X3+X5-X7+X175=556
    X2+X3-X4-X5+X6+X8=667
    -X2-X3-X4+X5+X6+X175=579
    X1+X2+X4+X5+X6-X8=617
    -X1-X2+X4-X5+X6+X175=563
    X1+X2-X3-X4+X6+X8=567
    -X1+X2+X3+X4-X6+X175=513
    X1-X3+X4-X5+X6+X7=635
    -X1+X3+X4+X5+X6-X160=581
    X1+X2+X3+X5+X6-X7=580
    -X1+X2+X3+X5-X6+X160=526
    X1-X2+X3-X4+X5+X7=534
    -X1+X2+X3+X4-X5+X160=480
    7元求法如下:
    X3+X4+X5+X6-X7+X8-X9=986
    -X3+X4+X5-X6-X7+X8+X203=832
    X1+X4+X5+X6-X7-X8+X9=936
    -X1+X4+X5-X6+X7-X8+X203=882
    X2+X3+X5+X6-X7-X8+X9=931
    -X2+X3+X5-X6-X7+X8+X203=843
    X1+X2+X5-X6+X7-X8+X9=881
    -X1+X2+X5-X6-X7+X8+X203=827
    X1+X3+X4-X6+X7-X8+X9=886
    -X1+X3+X4-X6-X7+X8+X203=832
    X1+X2+X3-X6-X7+X8+X9=831
    -X1+X2-X3+X6+X7+X8-X203=777
    X2+X3+X4-X5+X7+X8-X9=885
    -X2+X3+X4-X5-X7+X8+X203=797
    X1+X2+X4-X5+X7-X8+X9=835
    -X1+X2+X4-X5-X7+X8+X203=781
    X1+X2+X3-X4+X7-X8+X9=785
    -X1+X2+X3-X4-X7+X8+X203=731
    X1+X3+X4-X5+X6-X8+X9=853
    -X1+X3-X4+X5+X6-X8+X203=799
    X1+X2-X3+X5+X6+X8-X9=798
    -X1+X2+X3-X5-X6+X8+X203=744
    X1+X2-X3+X4+X5-X8+X9=752
    -X1-X2+X3+X4+X5-X8+X203=698
    X2+X3+X4+X5-X6-X7+X9=855
    -X2+X3+X4-X5-X6+X7+X203=767
    X1+X2+X4-X5+X6-X7+X9=805
    -X1+X2+X4-X5-X6+X7+X203=751
    X1+X2+X3-X4+X6-X7+X9=755
    -X1+X2+X3-X4-X6+X7+X203=701
    X1+X2+X3-X4+X5-X6+X9=722
    -X1+X2+X3+X4+X5+X6-X203=668
    X1+X3+X4-X5+X6-X7+X8=810
    -X1+X3+X4-X5-X6+X7+X175=756
    X1+X2+X3-X5-X6+X7+X8=755
    -X1+X2-X3+X5+X6-X7+X175=701
    X1+X2-X3+X4+X5-X7+X8=709
    -X1+X2+X3-X4-X5+X7+X175=655
    X1+X2+X3-X4-X5+X6+X7=679
    -X1+X2-X3+X4-X5+X6+X160=625
    8元求法如下:
    X2+X3+X4+X5+X6+X7-X8-X9=1030
    -X2+X3+X4+X5+X6-X7-X8+X203=942
    X1+X2+X4+X5+X6-X7+X8-X9=980
    -X1+X2+X4+X5+X6-X7-X8+X203=926
    X1+X2+X3+X4+X6-X7-X8+X9=930
    -X1+X2+X3+X4-X6+X7-X8+X203=876
    X1+X2+X3+X4+X5-X6-X8+X9=897
    -X1+X2+X3+X4-X5+X6-X8+X203=843
    X1+X2+X3+X4+X5-X6-X7+X8=854
    -X1+X2+X3+X4-X5+X6-X7+X175=800
    9元求法如下:
      

  2.   

    三元后面  -X7+X8+X203=218
    应该是-X7+X8+X5=142  
    四元后面 X4+X7+X8-X9=637应该是X4+X7+X8-X9=231  找了半天也没看出来哪儿写错了  为什么程序输出的结果是错的