gpt4 book ai didi

java - 如何在 Java 中编写 "all these numbers are different"条件?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:32:07 26 4
gpt4 key购买 nike

好的,我有这个问题要解决,但我不能用 Java 正确编程。看下图,你会看到一个6角星,每个点和线的交点都是一个字母。

作业是将数字 1 到 12 定位,使四个球的所有直线的总和为 26,而星星的所有 6 个点的总和也为 26。这归结为:

  • (A+C+F+H==26)
  • (A+D+G+K==26)
  • (B+C+D+E==26)
  • (B+F+I+L==26)
  • (E+G+J+L==26)
  • (H+I+J+K==26)
  • (A+B+E+H+K+L==26)

所以我开始编写一个程序,该程序将循环遍历所有选项以暴力破解解决方案。该循环正在运行,但是,它现在显示了多次使用一个数字的解决方案,这是不允许的。我怎样才能在代码中让它同时检查所有变量是否不同?

if ((A!= B != C != D != E != F != G != H != I != J != K != L)

我试过上面的方法,但它不起作用,因为它说:

incomparable types: boolean and int.

如何在 1 或小语句中检查所有数字是否不同?

(而不是制作一个嵌套的 12*12 语句来检查每个变量组合)

到目前为止,这是我的代码:

    public class code {
public static void main(String[] args){

for(int A = 1; A < 13; A++){
for(int B = 1; B < 13; B++){
for(int C = 1; C < 13; C++){
for(int D = 1; D < 13; D++){
for(int E = 1; E < 13; E++){
for(int F = 1; F < 13; F++){
for(int G = 1; G < 13; G++){
for(int H = 1; H < 13; H++){
for(int I = 1; I < 13; I++){
for(int J = 1; J < 13; J++){
for(int K = 1; K < 13; K++){
for(int L = 1; L < 13; L++){
if ((A+C+F+H==26) && (A+D+G+K==26) && (B+C+D+E==26) && (B+F+I+L==26) && (E+G+J+L==26) && (H+I+J+K==26) && (A+B+E+H+K+L==26)){
if ((A= C != D != E != F != G != H != I != J != K != L)){
System.out.println("A: " + A);
System.out.println("B: " + B);
System.out.println("C: " + C);
System.out.println("D: " + D);
System.out.println("E: " + E);
System.out.println("F: " + F);
System.out.println("G: " + G);
System.out.println("H: " + H);
System.out.println("I: " + I);
System.out.println("J: " + J);
System.out.println("K: " + K);
System.out.println("L: " + L);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}

}

最佳答案

如果我没看错,你想检查 A 到 L 是否都是唯一的。所以只需将它们放在一个集合中并找到集合的大小:

if ((new HashSet<Integer>(
Arrays.asList(A, B, C, D, E, F, G, H, I, J, K, L)))
.size() == 12) {
//do your stuff
}

关于java - 如何在 Java 中编写 "all these numbers are different"条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4366119/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com