Magi squares, recursive
- by user310827
Hi, my problem is, I'm trying to permute all posibilities for 3x3 square and check if the combination is magic. I've added a tweak with (n%3==0) if statement that if the sum of numbers in row differs from 15 it breaks the creation of other two lines... but it doesn't work, any suggestions, I call the function with Permute(1).
public static class Global {
//int[] j = new int[6];
public static int[] a= {0,0,0,0,0,0,0,0,0};
public static int[] b= {0,0,0,0,0,0,0,0,0};
public static int count = 0;
}
public static void Permute(int n) {
int tmp=n-1;
for (int i=0;i<9;i++){
if (Global.b[i]==0 ) {
Global.b[i]=1;
Global.a[n-1]=i+1;
if ((n % 3) == 0) {
if (Global.a[0+tmp]+Global.a[1+tmp]+Global.a[2+tmp] == 15) {
if (n<9) {
Permute(n+1);
}
else {
isMagic(Global.a);
}
}
else
break;
}
else {
Permute(n+1);
}
Global.b[i]=0;
}
}
}