Bien, tengo este problema para resolver pero no puedo programarlo en Java correctamente. Vea la imagen a continuación, verá una estrella de 6 puntas en cada punto y la intersección de líneas es una letra.¿Cómo escribir una condición "todos estos números son diferentes" en Java?
la asignación es para posicionar los números 1 a 12 de tal manera que la suma de todas las líneas de cuatro bolas es 26 y la suma de todos los 6 puntos de la estrella es 26 también. Esto se reduce a:
- (A + C + F + H == 26)
- (A + D + G + K == 26)
- (B + C + D + E == 26)
- (+ F B + I + L == 26)
- (E + G + J + L == 26)
- (H + I + J + K == 26)
- (A + B + E + H + K + L == 26)
Así que comencé a programar un programa que recorría todas las opciones brute forzando una solución. El bucle está funcionando, sin embargo, ahora muestra soluciones donde un número se usa más de una vez, lo que no está permitido. ¿Cómo puedo hacer que en el código también se compruebe si todas las variables son diferentes o no?
if ((A!= B != C != D != E != F != G != H != I != J != K != L)
probé la anterior, pero esto no funciona, porque dice:
tipos incomparables: booleano e int.
¿Cómo puedo verificar dentro de 1 o en una pequeña declaración si todos los números son diferentes o no?
(en vez de hacer un anidado comunicado 12 * 12 que comprueba cada combinación de variables)
Este es mi código hasta ahora:
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);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
+1. Este es un ejemplo de lo que debe ser una pregunta de tarea * *. :) –
Fuera del tema, pero solo tenga en cuenta que en Java, la convención es para poner en mayúscula la primera letra de los nombres de las clases. Por lo tanto, es mejor llamar a su clase 'Código' en lugar de' código'. El nombre del archivo también debe cambiarse a 'Code.java' from' code.java'. Un nombre más significativo es aún mejor, algo así como 'SixPointedStarProblemSolver'. – Behrang
@ adam: gracias, puse un poco de trabajo antes de preguntar por aquí :) @bytecode: Gracias por el comentario, pero es solo para uso personal, creo que mi profesor no quiere que lo fuerce brutalmente, pero hacerlo de otra manera no tengo ni idea de cómo hacerlo :) – Javaaaa