往3*3的格子中填入9个数,使每一行、每一列、对角线值都是15.
正确结果是8个。
#include #include int jdg[10]; int a[3][3]; int judge() { if(a[0][2]+a[1][2]+a[2][2]!=15)/*a00 a01 a02*/ return 0; //a10 a11 a12 if(a[0][0]+a[1][1]+a[2][2]!=15) //a20 a21 a22 return 0; if(a[0][2]+a[1][1]+a[2][0]!=15) return 0; return 1; } void dfs(int n); int main() { int i; memset(jdg,0,sizeof(jdg)); memset(a,0,sizeof(a)); dfs(0); return 0; } void dfs(int n) { int i,j; if(n%3==0 && n!=0) { if(a[n/3-1][0]+a[n/3-1][1]+a[n/3-1][2]!=15) return ; } if(n/3==2 && (n%3==1 || n%3==2)) { if((a[(n-1)/3-2][(n-1)%3]+a[(n-1)/3-1][(n-1)%3]+a[(n-1)/3][(n-1)%3])!=15) return ; } if(n>8){ if(judge()) { for(i=0;i |