输入: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);
}
}
}
求: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);
}
}
}
解决方案 »
- 小生想买本书学习操作系统,不知道哪本书好~~
- 这是什么错误!不影响运行,关闭Tomcate时候出现的,ECLIPSE内置的那个!
- 一个方法的修饰符写“protected”和不写有什么区别吗?
- 如何获得当前运行的Application的路径URL?
- 如何看待 thinking in java
- 如果要在界面放两个CHECKBOX,每点击一个CHECKBOX,就弹出一个MSG,显示这个CHECKBOX的名字,应该怎么做(求一段能运行的源程序)
- 请问这个是什么
- 关于强制转换的问题。
- 关于java的IO流出现一点奇怪的事情,求高人解答一下?
- 我用jar cvfm Notepad.jar Notepad生成Notepad.jar
- 用Java编写本地搜索程序问题
- 一个奇怪的方法调用,求解释.
输出结果:
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元求法如下:
应该是-X7+X8+X5=142
四元后面 X4+X7+X8-X9=637应该是X4+X7+X8-X9=231 找了半天也没看出来哪儿写错了 为什么程序输出的结果是错的