我只是从Java 8开始,所以请原谅我可怕的代码。经过数小时的尝试后,我仍然没有得到任何实际结果。
给定的问题是:
ABC + DBE = EFF
减负减
DEG + FFA = HFI
等于等于等于
CBI + FED = DEJ
我需要找到所有对应的数字并通过简单地尝试数字来求解所有方程。我只能将While-Loops用于此任务。
这是我想出的代码:
public static void main(String args[]) {
int a = 0;
while (a < 10) {
int b = 0;
while (b < 10) {
int c = 0;
while (c < 10) {
int abc = a * 100 + b * 10 + c;
int d = 0;
while (d < 10) {
int e = 0;
while (e < 10) {
int dbe = d * 100 + b * 10 + e;
int f = 0;
while (f < 10) {
int eff = e * 100 + f * 10 + f;
int g = 0;
while (g < 10) {
int deg = d * 100 + e * 10 + g;
int ffa = f * 100 + f * 10 + a;
int h = 0;
while (h < 10) {
int i = 0;
while (i < 10) {
int hfi = h * 100 + f * 10 + i;
int cbi = c * 100 + b * 10 + i;
int fed = f * 100 + e * 10 + d;
int j = 0;
while (j < 10) {
int dej = d * 100 + e * 10 + j;
if (abc + dbe == eff &&
deg + ffa == hfi &&
cbi + fed == dej &&
abc - deg == cbi &&
dbe - ffa == fed &&
eff - hfi == dej) {
System.out.println(abc);
System.out.println(dbe);
System.out.println(eff);
System.out.println(deg);
System.out.println(ffa);
System.out.println(hfi);
System.out.println(cbi);
System.out.println(fed);
System.out.println(dej);
}
}
j++;
}
i++;
}
h++;
}
g++;
}
f++;
}
e++;
}
d++;
}
c++;
}
b++;
}
a++;
}
}
我希望程序输出组合数字的值(即abc,dbe,...),而不是程序输出看似随机数的永无止境的流。
您能帮我找到可行的解决方案吗?
答案 0 :(得分:1)
j++
在while (j < 10) {
循环之外,因此它将永远持续下去。其他所有增量都相同。
同样在所有情况下,所有值均为zero
,因此等于
输出(去掉零)
602
309
911
398
116
514
204
193
397