精華區beta ck54th329 關於我們 聯絡資訊
#include <iostream> #include <iomanip> using namespace std; const int xsize=8,ysize=8; int success=0; void clearchess(int [][ysize]); void putknight(int [][ysize],int,int,int); void printchess(int [][ysize]); int main() { int chess[xsize][ysize]={0}; int i,j; for(i=0;i<xsize;i++) for(j=0;j<ysize;j++) { clearchess(chess); putknight(chess,i,j,1); } cout << "success=" << success << endl; return 0; } void clearchess(int chess[][ysize]) { for(int i=0;i<xsize;i++) for(int j=0;j<ysize;j++) chess[i][j]=0; } void putknight(int chess[][ysize],int x,int y,int put) { if(x<0 || y<0 || x>=xsize || y>=ysize || chess[x][y]!=0) { return; } else { chess[x][y]=put; if(put >= 64){ success++; cout << success << endl; printchess(chess); } for(int i=1;i<=8;i++){ switch(i){ case 1: putknight(chess,x-2,y+1,put+1); break; case 2: putknight(chess,x-1,y+2,put+1); break; case 3: putknight(chess,x+1,y+2,put+1); break; case 4: putknight(chess,x+2,y+1,put+1); break; case 5: putknight(chess,x+2,y-1,put+1); break; case 6: putknight(chess,x+1,y-2,put+1); break; case 7: putknight(chess,x-1,y-2,put+1); break; case 8: putknight(chess,x-2,y-1,put+1); break; } } } chess[x][y]=0; } void printchess(int chess[][ysize]) { for(int i=0;i<xsize;i++) { for(int j=0;j<ysize;j++) cout << setw(3) << chess[i][j]; cout << endl; } cout << endl; } -- ※ 發信站: 批踢踢實業坊(ptt.csie.ntu.edu.tw) ◆ From: 61.70.219.17