ОК, мне нужно решить эту проблему, но я не могу правильно запрограммировать ее на 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)
- (А + В + Е + Н + К + L == 26) * * тысяча двадцать один
Итак, я начал программировать программу, которая бы перебирала все варианты, используя грубое решение проблемы. Цикл работает, однако теперь он показывает решения, в которых одно число используется более одного раза, что недопустимо. Как я могу сделать это в коде, чтобы он также проверял, все ли переменные разные или нет?
if ((A!= B != C != D != E != F != G != H != I != J != K != L)
Я попробовал выше, но это не работает, потому что он говорит:
несопоставимые типы: логические и 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);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}