由于算法不是很好,要等几分钟才能出结果。
#include<stdio.h> int a[8][8]=; void f(int x,int y) {int m,n,i; if(k==65){printf(" "); for(a1=0;a1<8;a1++) {for(a2=0;a2<8;a2++) printf("%3d",a[a1][a2]); printf(" "); } } else for(i=1;i<64;i++) {m=i/8;n=i%8; if(((n-x)*(n-x)+(m-y)*(m-y))==5&&a[n][m]==0) { a[n][m]=k++; f(n,m);a[n][m]=0;k--; }} } main() { printf(" Please wait for a few minutes. "); f(0,0); } |